|
Due to changes in the Java verifier, the code generated by JavaAssist during compile time instrumentation results in the following types of errors:
java.lang.VerifyError: Expecting a stackmap frame at branch target X.
To Reproduce:
Create entity with @LazyToOne(NO_PROXY) annotation. Add instrumentation by using the org.hibernate.tool.instrument.javassist.InstrumentTask
Currently, a workaround exists by specifying -XX:-UseSplitVerifier which will fall back to the Java 6 verifier when necessary.
Given this is a workaround, the proper bytecode should be generated. According to https://issues.jboss.org/browse/JASSIST-155: "For an application directly using a lower-level API (javassist.bytecode.* classes),
updating a stack map table is the responsibility of the application"
|