Причина исключения java.lang.VerifyError: неверный тип в стеке операндов при записи правила в Mvel

Я новичок в Мвеле. Я получаю сообщение об ошибке при выполнении следующего выражения mvel. Это выражение хорошо работает для планов, размер которых меньше 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/lang/Object;Ljava/lang/Object;Lorg/mvel2/integration/VariableResolverFactory;)Ljava/lang/Object; @45: invokeinterface Причина: тип 'java/lang/Object' (текущий фрейм, стек[1]) не может быть присвоен целочисленному значению. /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 0x00000030 b0: 020000030

в java.lang.Class.getDeclaredConstructors0 (собственный метод) в java.lang.Class.privateGetDeclaredConstructors (Class.java:2671) в java.lang.Class.getConstructor0 (Class.java:3075) в java.lang.Class.newInstance (Класс.java:412)

Пожалуйста помоги.


person pkn    schedule 14.01.2016    source источник
comment
не знал, почему я получаю исключение для цикла for. Теперь я изменил свой код на цикл foreach, и он работает без каких-либо ошибок.   -  person pkn    schedule 19.01.2016


Ответы (1)


Я получал исключение, вызванное org.mvel2.optimizers.OptimizationNotSupported. Это поведение было показано, поскольку DynamicOptimizer не имеет резервного варианта при сбое оптимизатора ASM. Рефлексивные оптимизаторы кажутся хорошим запасным вариантом, и mvel исправлен, это последняя версия mvel2 (2.2.7).

Я обновил версию mvel2, и теперь нулевая навигация по bean-компонентам работает нормально.

person pkn    schedule 02.02.2016