Jak bezpieczne jest używanie -XX: -UseSplitVerifier?
Znane są problemy ze zgodnością z skompilowanym kodem JDK7 przy użyciu oprzyrządowania. Co się tyczyhttp://www.oracle.com/technetwork/java/javase/compatibility-417013.html
Pliki klas z numerem wersji 51 są weryfikowane wyłącznie przy użyciu weryfikatora sprawdzania typu, a zatem metody muszą mieć atrybuty StackMapTable, gdy jest to właściwe. W przypadku plików klas z wersją 50 wirtualna maszyna JVM Hotspot (i kontynuuje) przełącza awaryjne na weryfikator wnioskowania typu, jeśli brakuje stosów w pliku lub są one nieprawidłowe. To zachowanie awaryjne nie występuje w przypadku plików klas z wersją 51 (domyślna wersja Java SE 7). Każde narzędzie, które modyfikuje kod bajtowy w pliku klasy 51, musi upewnić się, że zaktualizuje informacje o stosie, aby były zgodne z kodem bajtowym, aby przejść weryfikację.
Rozwiązaniem jest użycie-XX:-UseSplitVerifier
jak podsumowano tutaj:https://community.oracle.com/blogs/fabriziogiudici/2012/05/07/understanding-subtle-new-behaviours-jdk-7
Jak to bezpieczne? Przypuszczam, że Oracle umieścił to sprawdzenie z jakiegoś powodu. Jeśli go nie użyję, mogę ryzykować inne problemy.
Jakie mogą być konsekwencje używania-XX:-UseSplitVerifier
?
Dzięki,
Piotr.