RFR 8224952: RI deviates from JVMS - non-zero minor_version for class files throws UnsupportedClassVersionError.

Harold Seigel harold.seigel at oracle.com
Thu Jun 6 13:02:37 UTC 2019


Hi,

Please review this second attempt to fix the JVM's handling of class 
file versions to match what is in the latest JVM Spec 
<https://docs.oracle.com/javase/specs/jvms/se12/html/jvms-4.html#jvms-4.1>.  
With this change, only the following class file major and minor version 
combinations are allowed:

  * 45 <= major_version < 56, and any minor version
  * 56 <= major_version <= latest major version and minor version of 0
  * Major_version = latest_major_version and minor_version = 65535 and
    option --enable-preview is specified

Note that 56 is the class file version for JDK-12.

The change also contains a small fix for -Xlog:class+preview. This fix 
was tested by hand.

Open Webrev: 
http://cr.openjdk.java.net/~hseigel/bug_8224952.2/webrev/index.html

JBS Bug: https://bugs.openjdk.java.net/browse/JDK-8224952

The fix was regression tested by running Mach5 tiers 1 and 2 tests and 
builds on Linux-x64, Solaris, Windows, and Mac OS X, by running Mach5 
tiers 3-5 tests on Linux-x64, and JCK lang and VM tests on Linux-x64.

Thanks, Harold



More information about the hotspot-runtime-dev mailing list