I've been trying to get a javassist that works in all environments. For a while, I created a multi release jar file that used Javassist 3.20 for pre-jdk9 and Javassist 3.21 for JDK9/Jake. The JDK team wasn't happy about this use of multi release jar files but it worked great. Then 3.22.0-CR1 was released and I thought the problem was solved. This is working for pre-JDK9 and JDK-9 but it's now failing on Jake (build 143).
java.lang.NoSuchMethodError: java.lang.reflect.Layer.parent()Ljava/util/Optional; [exec] at javassist.ModuleClassPath.<init>(ModuleClassPath.java:54) [exec] at javassist.ModuleClassPath.<init>(ModuleClassPath.java:40) [exec] at javassist.LoaderClassPath.<init>(LoaderClassPath.java:82) [exec] at javassist.ClassPoolTail.appendSystemPath(ClassPoolTail.java:248) [exec] at javassist.ClassPool.appendSystemPath(ClassPool.java:944) [exec] at javassist.ClassPool.<init>(ClassPool.java:179) [exec] at org.glassfish.hk2.xml.tools.Hk2XmlGenerator.initializeHk2XmlGenerator(Hk2XmlGenerator.java:86) [exec] at org.glassfish.hk2.xml.tools.Hk2XmlGenerator.process(Hk2XmlGenerator.java:140) [exec] at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:959) [exec] at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs(JavacProcessingEnvironment.java:875) [exec] at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment.access$2100(JavacProcessingEnvironment.java:106) [exec] at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.run(JavacProcessingEnvironment.java:1182) [exec] at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:1290) [exec] at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1260) [exec] at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:939) [exec] at jdk.compiler/com.sun.tools.javac.main.Main.compile(Main.java:304) [exec] at jdk.compiler/com.sun.tools.javac.main.Main.compile(Main.java:160) [exec] at jdk.compiler/com.sun.tools.javac.Main.compile(Main.java:55) [exec] at jdk.compiler/com.sun.tools.javac.Main.main(Main.java:41) I guess I will need to go back to my 3.2021 for now.