I can see one possible difference, depending on how you are loading
the code into the ftp server.

In your clojure example you are accessing the logger through a top-
level define.  I believe this will run *during the file loading
process* as static code.

In your working java example, you aren't accessing the logger until
the actual onLogin function is called.

If the logger is in an odd state (like null) or god forbid the runtime
sets up the logger just before it calls into your function then you
may get different results.  I would recommend calling the getlogger
call in the function perhaps; change the 'def logger' to 'defn logger
[]' and work out the resulting details.  This would make the clojure
example a little closer to your java example and at least eliminate
one possible problem.

Chris

On Mar 10, 7:35 am, rb <[email protected]> wrote:
> Hi,
>
> I'm experimenting withhttp://mina.apache.org/ftpserver
> I have written a small java class that gets used by the ftp server,
> and am trying to transpose it to clojure, but unsuccessfully until
> now....
>
> The class generated with clojure is detected and used by the server,
> but the code of the method implemented is not run, and even worse, the
> ftp server isn't functional anymore (though I don't see any exception
> raised).
>
> Does anyone have an idea about what I'm doing wrong?
>
> Thanks
>
> Raphaël
>
> Here's the java code:
>
> package com.raphinou;
>
> import java.io.IOException;
> import org.apache.ftpserver.*;
> import org.apache.ftpserver.ftplet.*;
>
> public class Ftplet extends DefaultFtplet {
>     public FtpletResult onLogin(FtpSession session, FtpRequest
> request)
>             throws FtpException, IOException {
>         java.util.logging.Logger logger=
> java.util.logging.Logger.getLogger("com.raphinou");
>         logger.addHandler( new java.util.logging.FileHandler("/tmp/
> ftp.log"));
>         logger.severe("Logging in!!");
>         return FtpletResult.DEFAULT;
>     }
>
> }
>
> and here's the clojure code:
>
>  (ns com.raphinou.ftplet
>   (:gen-class :name com.raphinou.Ftplet
>    :extends org.apache.ftpserver.ftplet.DefaultFtplet)
>   (:import [org.apache.ftpserver.ftplet DefaultFtpReply
> FtpletResult]))
>
> (def logger (java.util.logging.Logger/getLogger "com.raphinou"))
> (.addHandler logger (java.util.logging.FileHandler. "/tmp/ftp.log"))
>
> (defn -onLogin [session request]
>   (.severe logger "Logging in, clj")
>   FtpletResult/DEFAULT)
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/clojure?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to