2015-02-02 2 views
0

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

+2

Я предполагаю, что исправление байт-кода будет правильным, это не вариант? ASM имеет возможность исправления фреймов. –

ответ

2

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

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