JDK-6693236 : A class file whose version number is greater than 50.0 must be verified using the typechecker
Type:Bug
Component:hotspot
Sub-Component:runtime
Affected Version:7
Priority:P3
Status:Closed
Resolution:Fixed
OS:generic
CPU:generic
Submitted:2008-04-24
Updated:2011-03-08
Resolved:2011-03-08
The Version table provides details related to the release that this issue/RFE will be addressed.
Unresolved : Release in which this issue/RFE will be addressed. Resolved: Release in which this issue/RFE has been resolved. Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.
According to 4.11.1 paragraph of JVMS3
"A class file whose version number is greater than to 50.0
must be verified using the typechecker rules"
Currently, if the typechecking fails, jdk 7 virtual machine
performs verification by type inference.
Comments
PUBLIC COMMENTS
The actual 4.11.1 paragraph of JVMS3 is
"A class file whose version number is greater than or equal to 50.0 must be verified using the typechecking rules given in this section. If, and only if, a class file���s version number equals 50.0, then if the typechecking fails, a virtual machine implementation may choose to attempt to perform verification by type inference.
The fix acts in the above fashion, i.e.,
If a v50 classfile has a stackmap, the stackmap is used for verification.
If no stackmap is present or verification using the stackmap fails, and the -XX
switch FailOverToOldVerifier is set, then the inference verifier is used. But if the classfile is v51 or higher no failover will occur if stackmap verification fails.