Raynes / lein-bin

Standalone console executables for your project.
155 stars 19 forks source link

stacktrace trying to run executable(using lein-bin 0.2.2) #6

Closed samrat closed 11 years ago

samrat commented 11 years ago

I get this stacktrace when trying to run an executable generated using lein-bin 0.2.2-

Exception in thread "main" java.lang.RuntimeException: Error creating extended parser class: Argument 'classLoader' must not be null
        at org.parboiled.Parboiled.createParser(Parboiled.java:58)
        at org.pegdown.PegDownProcessor.<init>(PegDownProcessor.java:66)
        at org.pegdown.PegDownProcessor.<init>(PegDownProcessor.java:57)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
        at clojure.lang.Reflector.invokeConstructor(Reflector.java:180)
        at me.raynes.cegdown$make_pegdown.invoke(cegdown.clj:37)
        at me.raynes.cegdown$to_html.invoke(cegdown.clj:49)
        at me.raynes.cegdown$to_html.invoke(cegdown.clj:53)
        at ecstatic.core$render_page.doInvoke(core.clj:122)
        at clojure.lang.RestFn.invoke(RestFn.java:442)
        at ecstatic.core$write_pages$fn__79.invoke(core.clj:157)
        at clojure.core$map$fn__4087.invoke(core.clj:2434)
        at clojure.lang.LazySeq.sval(LazySeq.java:42)
        at clojure.lang.LazySeq.seq(LazySeq.java:60)
        at clojure.lang.RT.seq(RT.java:473)
        at clojure.core$seq.invoke(core.clj:133)
        at clojure.core$dorun.invoke(core.clj:2725)
        at clojure.core$doall.invoke(core.clj:2741)
        at ecstatic.core$write_pages.invoke(core.clj:159)
        at ecstatic.core$create_site.invoke(core.clj:205)
        at ecstatic.core$_main.doInvoke(core.clj:228)
        at clojure.lang.RestFn.applyTo(RestFn.java:137)
        at ecstatic.core.main(Unknown Source)
Caused by: java.lang.NullPointerException: Argument 'classLoader' must not be null
        at org.parboiled.common.Preconditions.checkArgNotNull(Preconditions.java:208)
        at org.parboiled.transform.AsmUtils.findLoadedClass(AsmUtils.java:200)
        at org.parboiled.transform.ParserTransformer.transformParser(ParserTransformer.java:35)
        at org.parboiled.Parboiled.createParser(Parboiled.java:54)
        ... 25 more

No such problems occur with 0.2.1.

drewr commented 11 years ago

I'm able to reproduce. I don't understand why getClassLoader() returns null for org.pegdown.Parser in -Xbootclasspath, but it seems to affect OpenJDK and Oracle. It doesn't matter if I prepend or append the jar.

The safest thing to do is default to -jar and provide an option for bootclasspath. I've got a pull request ready for that.

Raynes commented 11 years ago

Fixed as of 0.3.0