[Solved] Mvel2 Error: java.lang.VerifyError method: getKnownEgressType signature

Environmental information:

jdk: 8

mvel2: 2.0.19

Exception information:

java.lang.VerifyError: (class: ASMAccessorImpl_3009129941634644382940, method: getKnownEgressType signature: ()Ljava/lang/Class;) Illegal type in constant pool

The methods called are the following methods of the org.mvel2.mvel class:

public static Object executeExpression(Object compiledExpression, Object ctx, Map vars)

Error Messages:

java.lang.VerifyError: (class: ASMAccessorImpl_3009129941634644382940, method: getKnownEgressType signature: ()Ljava/lang/Class;) Illegal type in constant pool
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2671)
at java.lang.Class.getConstructor0(Class.java:3075)
at java.lang.Class.newInstance(Class.java:412)
at org.mvel2.optimizers.impl.asm.ASMAccessorOptimizer._initializeAccessor(ASMAccessorOptimizer.java:698)
at org.mvel2.optimizers.impl.asm.ASMAccessorOptimizer.compileAccessor(ASMAccessorOptimizer.java:832)
at org.mvel2.optimizers.impl.asm.ASMAccessorOptimizer.optimizeAccessor(ASMAccessorOptimizer.java:239)
at org.mvel2.optimizers.dynamic.DynamicGetAccessor.optimize(DynamicGetAccessor.java:83)
at org.mvel2.optimizers.dynamic.DynamicGetAccessor.getValue(DynamicGetAccessor.java:57)
at org.mvel2.ast.ASTNode.getReducedValueAccelerated(ASTNode.java:98)
at org.mvel2.compiler.ExecutableAccessor.getValue(ExecutableAccessor.java:42)
at org.mvel2.MVEL.executeExpression(MVEL.java:996)


Partial source code of ASMAccessorOptimizer.

It can be seen that this version of mvel2 does not support jdk7 and jdk8, upgrade the version on the good

Read More: