`dict` command after cljam 0.8.2 fails
Closed this issue ยท 4 comments
totakke commented
$ cljam version
0.8.4
$ cljam dict test-resources/fasta/test.fa /tmp/test.dict
Exception in thread "main" java.lang.ExceptionInInitializerError
at org.apache.commons.compress.compressors.xz.XZUtils.<clinit>(XZUtils.java:59)
at org.apache.commons.compress.compressors.CompressorStreamFactory.detect(CompressorStreamFactory.java:271)
at org.apache.commons.compress.compressors.CompressorStreamFactory.createCompressorInputStream(CompressorStreamFactory.java:522)
at cljam.util$compressor_input_stream.invokeStatic(util.clj:122)
at cljam.io.fasta.core$reader.invokeStatic(core.clj:38)
at cljam.io.sequence$fasta_reader.invokeStatic(sequence.clj:20)
at cljam.algo.dict$create_dict.invokeStatic(dict.clj:9)
at cljam.tools.cli$dict.invokeStatic(cli.clj:297)
at cljam.tools.cli$run.invokeStatic(cli.clj:357)
at cljam.tools.main$_main.invokeStatic(main.clj:6)
at cljam.tools.main$_main.doInvoke(main.clj:6)
at clojure.lang.RestFn.applyTo(RestFn.java:137)
at cljam.tools.main.main(Unknown Source)
Caused by: java.lang.NullPointerException: Cannot invoke "Object.getClass()" because the return value of "java.lang.Class.getClassLoader()" is null
at org.apache.commons.compress.utils.OsgiUtils.<clinit>(OsgiUtils.java:31)
... 13 more
$ echo $?
1
<=0.8.1
succeeds but 0.8.2<=
fails.
$ cljam version
0.8.1
$ cljam dict test-resources/fasta/test.fa /tmp/test.dict
$ echo $?
0
alumi commented
- ๐โโ๏ธ
java -jar ./target/cljam-0.8.5-SNAPSHOT-standalone.jar dict ./test-resources/fasta/test.fa /dev/stdout
- ๐
โโ๏ธ
./target/cljam dict ./test-resources/fasta/test.fa /dev/stdout
- ๐
โโ๏ธ
java -Xbootclasspath/a:./target/cljam-0.8.5-SNAPSHOT-standalone.jar cljam.tools.main dict ./test-resources/fasta/test.fa /dev/stdout
alumi commented
- When loading the class
org.apache.commons.compress.utils.OsgiUtils
, its static initializer callsgetClassLoader
but the return value will benull
when the class is loaded by a bootstrap classloader. lein-binplus
adds the-Xbootclasspath/a
option when:bootclasspath
is truthy- So this can be fixed by removing
:bootclasspath true
in project.clj
alumi commented
@totakke Thank you for reporting the bug! I created a PR for this issue just now.
I also sent a PR to commons-compress. The :bootclasspath
option can be re-enabled if the PR is merged.
totakke commented
Thank you so much for your quick fixing. ๐