You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The large switch on bytecode instructions does not list invokedynamic, and the constant type related to invokedynamic is not supported, either. This is mostly an issue for Java 8 and code containing lambdas because before this version, javac does not emit the instruction.
The text was updated successfully, but these errors were encountered:
BCEL throws this exception for a class compiled using javac which contains a lambda:
Exception in thread "main" org.apache.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool: 18
Unfortunately, BCEL appears to be dead upstream, and there hasn't been a release with full support for JDK 7, so it is probably best to switch to ASM or your own class file parser.
invokedynamic has the same instruction format as invokeinterface, so the only thing needed is support for the new constant pool entry types.
I have rewritten the normalization from scratch, without any external dependencies, eliminating the BCEL dependency. Adding invokedynamic support to this should be really easy.
The large switch on bytecode instructions does not list
invokedynamic
, and the constant type related toinvokedynamic
is not supported, either. This is mostly an issue for Java 8 and code containing lambdas because before this version,javac
does not emit the instruction.The text was updated successfully, but these errors were encountered: