clj-commons / virgil

Recompile Java code without restarting the REPL
306 stars 21 forks source link

IllegalAccessError when starting repl #16

Closed schmir closed 6 years ago

schmir commented 6 years ago

I get the following error when starting lein repl. This happens with 0.1.7, but not with 0.1.6. So, I suspect one of my changes may have broken virgil.

I'm not sure what changed on my system. It used to run fine. I"ll have a look into it.

nREPL server started on port 40719 on host 127.0.0.1 - nrepl://127.0.0.1:40719

recompiling all files in ["/home/ralf/soka/repos/JavaRechenkern/src"]
An exception has occurred in the compiler (1.8.0_152). Please file a bug against the Java compiler via the Java bug reporting page (http://bugreport.java.com) after checking the Bug Database (http://bugs.java.com) for duplicates. Include your program and the following diagnostic in your report. Thank you.
java.lang.IllegalAccessError: tried to access class com.sun.tools.javac.comp.Lower$3 from class com.sun.tools.javac.comp.Lower
        at com.sun.tools.javac.comp.Lower.abstractLval(Lower.java:2325)
        at com.sun.tools.javac.comp.Lower.visitAssignop(Lower.java:3226)
        at com.sun.tools.javac.tree.JCTree$JCAssignOp.accept(JCTree.java:1716)
        at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
        at com.sun.tools.javac.comp.Lower.translate(Lower.java:2371)
        at com.sun.tools.javac.tree.TreeTranslator.visitExec(TreeTranslator.java:245)
        at com.sun.tools.javac.tree.JCTree$JCExpressionStatement.accept(JCTree.java:1296)
        at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
        at com.sun.tools.javac.comp.Lower.translate(Lower.java:2371)
        at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:70)
        at com.sun.tools.javac.tree.TreeTranslator.visitBlock(TreeTranslator.java:162)
        at com.sun.tools.javac.comp.Lower.visitBlock(Lower.java:3561)
        at com.sun.tools.javac.tree.JCTree$JCBlock.accept(JCTree.java:909)
        at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
        at com.sun.tools.javac.comp.Lower.translate(Lower.java:2371)
        at com.sun.tools.javac.comp.Lower.visitIf(Lower.java:2977)
        at com.sun.tools.javac.tree.JCTree$JCIf.accept(JCTree.java:1269)
        at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
        at com.sun.tools.javac.comp.Lower.translate(Lower.java:2371)
        at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:70)
        at com.sun.tools.javac.tree.TreeTranslator.visitBlock(TreeTranslator.java:162)
        at com.sun.tools.javac.comp.Lower.visitBlock(Lower.java:3561)
        at com.sun.tools.javac.tree.JCTree$JCBlock.accept(JCTree.java:909)
        at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
        at com.sun.tools.javac.comp.Lower.translate(Lower.java:2371)
        at com.sun.tools.javac.comp.Lower.visitIf(Lower.java:2977)
        at com.sun.tools.javac.tree.JCTree$JCIf.accept(JCTree.java:1269)
        at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
        at com.sun.tools.javac.comp.Lower.translate(Lower.java:2371)
        at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:70)
        at com.sun.tools.javac.tree.TreeTranslator.visitBlock(TreeTranslator.java:162)
        at com.sun.tools.javac.comp.Lower.visitBlock(Lower.java:3561)
        at com.sun.tools.javac.tree.JCTree$JCBlock.accept(JCTree.java:909)
        at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
        at com.sun.tools.javac.comp.Lower.translate(Lower.java:2371)
        at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:70)
        at com.sun.tools.javac.tree.TreeTranslator.visitBlock(TreeTranslator.java:162)
        at com.sun.tools.javac.comp.Lower.visitBlock(Lower.java:3561)
        at com.sun.tools.javac.tree.JCTree$JCBlock.accept(JCTree.java:909)
        at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
        at com.sun.tools.javac.comp.Lower.translate(Lower.java:2371)
        at com.sun.tools.javac.comp.Lower.visitForLoop(Lower.java:3582)
        at com.sun.tools.javac.tree.JCTree$JCForLoop.accept(JCTree.java:1000)
        at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
        at com.sun.tools.javac.comp.Lower.translate(Lower.java:2371)
        at com.sun.tools.javac.comp.Lower.visitIterableForeachLoop(Lower.java:3528)
        at com.sun.tools.javac.comp.Lower.visitForeachLoop(Lower.java:3378)
        at com.sun.tools.javac.tree.JCTree$JCEnhancedForLoop.accept(JCTree.java:1035)
        at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
        at com.sun.tools.javac.comp.Lower.translate(Lower.java:2371)
        at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:70)
        at com.sun.tools.javac.tree.TreeTranslator.visitBlock(TreeTranslator.java:162)
        at com.sun.tools.javac.comp.Lower.visitBlock(Lower.java:3561)
        at com.sun.tools.javac.tree.JCTree$JCBlock.accept(JCTree.java:909)
        at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
        at com.sun.tools.javac.comp.Lower.translate(Lower.java:2371)
        at com.sun.tools.javac.comp.Lower.visitForLoop(Lower.java:3582)
        at com.sun.tools.javac.tree.JCTree$JCForLoop.accept(JCTree.java:1000)
        at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
        at com.sun.tools.javac.comp.Lower.translate(Lower.java:2371)
        at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:70)
        at com.sun.tools.javac.tree.TreeTranslator.visitBlock(TreeTranslator.java:162)
        at com.sun.tools.javac.comp.Lower.visitBlock(Lower.java:3561)
        at com.sun.tools.javac.tree.JCTree$JCBlock.accept(JCTree.java:909)
        at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
        at com.sun.tools.javac.comp.Lower.translate(Lower.java:2371)
        at com.sun.tools.javac.tree.TreeTranslator.visitMethodDef(TreeTranslator.java:145)
        at com.sun.tools.javac.comp.Lower.visitMethodDefInternal(Lower.java:2828)
        at com.sun.tools.javac.comp.Lower.visitMethodDef(Lower.java:2737)
        at com.sun.tools.javac.tree.JCTree$JCMethodDecl.accept(JCTree.java:778)
        at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
        at com.sun.tools.javac.comp.Lower.translate(Lower.java:2371)
        at com.sun.tools.javac.comp.Lower.visitClassDef(Lower.java:2508)
        at com.sun.tools.javac.tree.JCTree$JCClassDecl.accept(JCTree.java:693)
        at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
        at com.sun.tools.javac.comp.Lower.translate(Lower.java:2371)
        at com.sun.tools.javac.comp.Lower.translate(Lower.java:2390)
        at com.sun.tools.javac.comp.Lower.translateTopLevelClass(Lower.java:3932)
        at com.sun.tools.javac.main.JavaCompiler.desugar(JavaCompiler.java:1512)
        at com.sun.tools.javac.main.JavaCompiler.desugar(JavaCompiler.java:1356)
        at com.sun.tools.javac.main.JavaCompiler.compile2(JavaCompiler.java:901)
        at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:860)
        at com.sun.tools.javac.main.Main.compile(Main.java:523)
        at com.sun.tools.javac.api.JavacTaskImpl.doCall(JavacTaskImpl.java:129)
        at com.sun.tools.javac.api.JavacTaskImpl.call(JavacTaskImpl.java:138)
        at virgil.compile$source__GT_bytecode.invokeStatic(compile.clj:70)
        at virgil.compile$source__GT_bytecode.invoke(compile.clj:61)
        at virgil.compile$compile_java.invokeStatic(compile.clj:85)
        at virgil.compile$compile_java.invoke(compile.clj:81)
        at virgil.compile$compile_all_java.invokeStatic(compile.clj:110)
        at virgil.compile$compile_all_java.invoke(compile.clj:109)
        at virgil$watch$recompile__3523.invoke(virgil.clj:42)
        at virgil$consume_queue_and_callback_when_idle$fn__3512.invoke(virgil.clj:19)
        at virgil$consume_queue_and_callback_when_idle.invokeStatic(virgil.clj:18)
        at virgil$consume_queue_and_callback_when_idle.invoke(virgil.clj:10)
        at virgil$make_idle_callback$fn__3515$fn__3517.invoke(virgil.clj:31)
        at clojure.lang.AFn.run(AFn.java:22)
        at java.lang.Thread.run(Thread.java:748)
tried to access class com.sun.tools.javac.util.AbstractDiagnosticFormatter$2 from class com.sun.tools.javac.util.AbstractDiagnosticFormatter
REPL-y 0.3.7, nREPL 0.2.12
Clojure 1.8.0
Java HotSpot(TM) 64-Bit Server VM 1.8.0_152-b16
    Docs: (doc function-name-here)
          (find-doc "part-of-name-here")
  Source: (source function-name-here)
 Javadoc: (javadoc java-object-or-class-here)
    Exit: Control+D or (exit) or (quit)
 Results: Stored in vars *1, *2, *3, an exception in *e
schmir commented 6 years ago

I've had im.chit/vinyasa as a dependency in my leiningen profiles.clj. If I get rid of that (or rather replace it with im.chit/vinyasa.inject) it looks like the issue is gone.

Will reopen if it happens again.