Ожидание кадра карты стека - Java 8

Я получаю эту ошибку «Ожидается кадр карты стека в этом месте». Я использую Java 8. Я знаю, что для Java 7 есть обходной путь для использования -XX:-UseSplitVerifier для использования менее строгого метода проверки. Однако эта опция была удалена в Java 8. Мне было интересно, есть ли для этого какое-либо другое решение. Переход на более раннюю версию Java невозможен.


person S_1234    schedule 02.02.2015    source источник
comment
Я предполагаю, что исправить правильность байт-кода не вариант? В ASM есть возможность исправления кадров.   -  person Peter Lawrey    schedule 02.02.2015


Ответы (1)


Параметр -XX:-UseSplitVerifier был предназначен для того, чтобы дать разработчикам библиотек байт-кода и инструментов время на то, чтобы наверстать упущенное и исправить проблемы с таблицами стека. Разработчики JVM решили удалить эту опцию в самых последних JRE, потому что было достаточно времени для исправления инструментов.

Таким образом, лучшее решение — следовать этому намерению и использовать современный инструмент и его параметры для создания правильных кадров карты стека. Поскольку вы пометили свой вопрос тегом java-bytecode-asm, я предлагаю вам использовать его флаг ClassWriter.COMPUTE_FRAMES при создании файла класса.

person Holger    schedule 02.02.2015