The following command throws unexpected VerifyError
java -XX:AOTMode=record -cp app.jar VerifierFailOverApp
class VerifierFailOverApp {
public static void main(String[] args) throws Throwable {
Class goodClass = Class.forName("VerifierFailOver_Helper");
Object obj = goodClass.newInstance();
System.out.println("Successfully loaded: " + obj.getClass().getName());
}
}
The VerifierFailOver_Helper class has an invalid stackmap but has class version 50. It should be verified by the inference verifier, but -XX:AOTMode=record stops this from happening.
https://github.com/openjdk/jdk/blob/cbbab07d232ff7d46f91b2df4e1b0ef4f37bba95/src/hotspot/share/classfile/verifier.cpp#L231-L232
This regression is introduced inJDK-8348426
java -XX:AOTMode=record -cp app.jar VerifierFailOverApp
class VerifierFailOverApp {
public static void main(String[] args) throws Throwable {
Class goodClass = Class.forName("VerifierFailOver_Helper");
Object obj = goodClass.newInstance();
System.out.println("Successfully loaded: " + obj.getClass().getName());
}
}
The VerifierFailOver_Helper class has an invalid stackmap but has class version 50. It should be verified by the inference verifier, but -XX:AOTMode=record stops this from happening.
https://github.com/openjdk/jdk/blob/cbbab07d232ff7d46f91b2df4e1b0ef4f37bba95/src/hotspot/share/classfile/verifier.cpp#L231-L232
This regression is introduced in
- caused by
-
JDK-8348426 Generate binary file for -XX:AOTMode=record -XX:AOTConfiguration=file
-
- Resolved
-
- links to
-
Commit(master) openjdk/jdk/40f696db
-
Review(master) openjdk/jdk/25074