Help get this topic noticed by sharing it on Twitter, Facebook, or email.

Java 8 and code using method handles not supported

I think this technology is a game changer, and I have some hard to debug problems with a project using Java 8 and method handles. Unfortunately, neither is supported yet.

Attempts to launch a recording session with Java 8 will report the following problems:

first: "Java HotSpot(TM) 64-Bit Server VM warning: ignoring option UseSplitVerifier; support was removed in 8.0"

then:

java.lang.IllegalArgumentException
at java.com.chronon3.sb.recorder.custom.org.objectweb.asm.ClassReader.(SourceFile:170)
at java.com.chronon3.sb.recorder.custom.org.objectweb.asm.ClassReader.(SourceFile:153)
at java.com.chronon3.sb.recorder.instrumentors.a.e.a(SourceFile:21)
at java.com.chronon3.sb.recorder.instrumentors.a.a.b.a(SourceFile:61)
at java.com.chronon3.sb.recorder.instrumentors.a.a.a.transform(SourceFile:53)
at sun.instrument.TransformerManager.transform(TransformerManager.java:188)
...


then one instance of:

Chronon: Skipping recording of someclass.readBytes (Ljava/io/InputStream;)[B due to AssertionError: null

then about 50 cases of:

Chronon: Skipping recording of someclass.$clinit$ ()V due to AnalyzerException: Error at instruction 7: Dont support method handles yet

finally this one that might be a genuine bug:

Chronon: Error instrumenting somepackage.Node.isInvalidQuantifier.()Z due to ClassCastException java.com.chronon3.sb.recorder.analysis.b.m cannot be cast to java.com.chronon3.sb.recorder.analysis.b.b
java.lang.ClassCastException: java.com.chronon3.sb.recorder.analysis.b.m cannot be cast to java.com.chronon3.sb.recorder.analysis.b.i
at java.com.chronon3.sb.recorder.instrumentors.adapters.j.visitVarInsn(SourceFile:460)
at java.com.chronon3.sb.recorder.custom.org.objectweb.asm.tree.VarInsnNode.accept(SourceFile:86)
at java.com.chronon3.sb.recorder.custom.org.objectweb.asm.tree.InsnList.accept(SourceFile:169)
at java.com.chronon3.sb.recorder.custom.org.objectweb.asm.tree.MethodNode.accept(SourceFile:585)
at java.com.chronon3.sb.recorder.custom.org.objectweb.asm.tree.MethodNode.accept(SourceFile:515)
at java.com.chronon3.sb.recorder.custom.org.objectweb.asm.tree.ClassNode.accept(SourceFile:348)
at java.com.chronon3.sb.recorder.instrumentors.a.d.a(SourceFile:159)
at java.com.chronon3.sb.recorder.instrumentors.a.d.a(SourceFile:75)
at java.com.chronon3.sb.recorder.instrumentors.a.a.b.a(SourceFile:61)
at java.com.chronon3.sb.recorder.instrumentors.a.a.a.transform(SourceFile:53)
at sun.instrument.TransformerManager.transform(TransformerManager.java:188)

Unfortunately, this precludes me from effectively evaluating the product right off the bat.
Hope you will support Java 8 and method handles real soon.
1 person has
this problem
+1
Reply