On Nov 17, 1:00 pm, Scott Fleckenstein <[EMAIL PROTECTED]> wrote:
> Hi All,
>
> I've run into a bug since upgrading past revision 1100, specifically
> around adding to the classpath at runtime using add-classpath.  I've
> attached a test case 
> here:http://s3.amazonaws.com/nullstyle/precompile-bug.tar.gz
>
> That file has three versions of clojure (r1100, r1101, r1106) and
> web.clj, a sample app that loads jetty and starts a simple web
> server.  You can use run.sh in that same tar to run each revision, one
> after the other, to illustrate the breakage.
>
> Basically, after adding a jar to the classpath, when importing a class
> file from that jar I get a ClassNotFoundException thrown.  I don't
> have enough java experience to know what would cause this problem.
> Things work as expected on revision 1100.
>
> Does anyone know what would cause this?  I'd be happy to put in the
> time to help debug and fix this, but I'm at a loss for where next to
> go.
>

Such use of add-classpath is discouraged. The only reason for add-
classpath is to let you pull in something if you've started up the
repl without it. It shouldn't be a permanent part of any application
design. In your case, you can get the local Jetty jars in the mix by
supplying an extension dirs directive (-Djava.ext.dirs=) on the
command line:

java -Djava.ext.dirs=. -cp clojure-r1106.jar clojure.lang.Script
web.clj

All three revisions work with this change, and you can remove the add-
classpath calls.

The change that caused this is that now .class files for Clojure fn
classes can be found and loaded by a classloader higher up in the
chain, one which can't see the effects of add-classpath.

I'm going to deprecate add-classpath because people consistently use
it to avoid the standard classpath-setting mechanisms, at least until
I can figure out a way to coordinate it with the standard classloader.

Rich

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To post to this group, send email to clojure@googlegroups.com
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