Я получаю эту ошибку «Ожидание кадра стека в этом месте». Я использую Java 8. Я знаю, что для Java 7 существует обходной путь для использования -XX: -UseSplitVerifier для использования менее строгой проверки. Однако этот вариант был удален на Java 8. Мне было интересно, есть ли для этого какое-либо другое решение. Переход на более раннюю версию Java не является вариантом.Ожидание кадра stackmap - Java 8
0
A
ответ
2
Опция -XX:-UseSplitVerifier
была предназначена для того, чтобы дать библиотеке байт-кода и разработчикам инструмента время догонять и исправлять проблемы с таблицами стоп-кадров. Разработчики JVM решили удалить этот вариант в самых последних JRE, потому что было достаточно времени для исправления этих инструментов.
Таким образом, лучшим решением является отслеживание этого намерения и использование современного инструмента и его опций для создания правильных фреймов стоп-кадров. Поскольку вы отметили свой вопрос java-bytecode-asm, я предлагаю вам использовать его флаг ClassWriter.COMPUTE_FRAMES
при создании файла класса.
Я предполагаю, что исправление байт-кода будет правильным, это не вариант? ASM имеет возможность исправления фреймов. –