我是Mvel的新手。我在执行下面的mvel表达式时遇到错误。此表达式适用于规模小于20但不大于20的计划。此行为由大小超过20的计划显示。
if (true) {
tmp.__tmp = ent.data.plans;
if (tmp.__tmp != null) {
for (int index =0; index < ent.data.plans.size(); index++){
element=ent.data.plans[index];
System.out.println(element.name );}}}
错误低于
java.lang.VerifyError:操作数堆栈上的错误类型 例外细节: 地点: ASMAccessorImpl_4263943071452801154960.getValue(Ljava /郎/对象; Ljava /郎/对象; Lorg / mvel2 /整合/ VariableResolverFactory;)Ljava /郎/对象; @ 45:调用接口 原因: 类型'java / lang / Object'(当前帧,堆栈[1])不能分配给整数 当前框架: bci:@ 45 旗帜:{} locals:{'ASMAccessorImpl_4263943071452801154960','java / lang / Object','java / lang / Object','org / mvel2 / integration / VariableResolverFactory'} stack:{'java / util / List','java / lang / Object'} 字节码: 0x0000000:2d12 0eb9 0014 0200 b900 1901 00c0 001b 0x0000010:121d b900 2102 00c0 0023 b600 27c0 0029 0x0000020:2d12 2bb9 0014 0200 b900 1901 00b9 002e 0x0000030:0200 b0
at java.lang.Class.getDeclaredConstructors0(Native Method) at java.lang.Class.privateGetDeclaredConstructors(Class.java:2671) at java.lang.Class.getConstructor0(Class.java:3075) 在java.lang.Class.newInstance(Class.java:412)
请帮忙。
答案 0 :(得分:0)
我收到了由org.mvel2.optimizers.OptimizationNotSupported引起的异常。此行为显示为当ASM优化器失败时DynamicOptimizer没有任何回退。反射优化器似乎是那里很好的后备选项,并且修复了这是mvel2(2.2.7)的最新版本。
我升级了mvel2版本,现在null-safe bean导航工作正常。