JDK-8051002 : Incorrectly merged share/vm/classfile/classFileParser.cpp was pushed to 8u20
  • Type: Bug
  • Component: hotspot
  • Sub-Component: runtime
  • Affected Version: 8u20
  • Priority: P2
  • Status: Closed
  • Resolution: Fixed
  • Submitted: 2014-07-17
  • Updated: 2015-01-21
  • Resolved: 2014-08-25
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.

To download the current JDK release, click here.
JDK 8
8u40 b04Fixed
Related Reports
Relates :  
Description
Incorrectly merged file was pushed during CPU sync.
http://hg.openjdk.java.net/jdk8u/jdk8u20/hotspot/file/a7a22f7d9396/src/share/vm/classfile/classFileParser.cpp
Corresponded fix was not integrated JDK-8046213
Comments
adding link to original customer reported bug
18-07-2014

Looks like a merge issue to me - the same piece of code was merged in twice in slightly different positions. One of them was corrected (> became >=), perhaps before the merge that introduced the second copy. Exactly when/how this happened I can not determine. But yes this does seem to boil down to 8046213 needing to be applied.
18-07-2014

The file in 8u20 does indeed have the stated problem: void ClassFileParser::parse_classfile_bootstrap_methods_attribute(u4 attribute_byte_length, TRAPS) { ClassFileStream* cfs = stream(); u1* current_start = cfs->current(); guarantee_property(attribute_byte_length > sizeof(u2), "Invalid BootstrapMethods attribute length %u in class file %s", attribute_byte_length, CHECK); cfs->guarantee_more(attribute_byte_length, CHECK); int attribute_array_length = cfs->get_u2_fast(); guarantee_property(_max_bootstrap_specifier_index < attribute_array_length, "Short length on BootstrapMethods in class file %s", CHECK); guarantee_property(attribute_byte_length >= sizeof(u2), "Invalid BootstrapMethods attribute length %u in class file %s", attribute_byte_length, CHECK); I can't figure out what went wrong here but I think it stems from JDK-8034926 which has way too many backports! At some point the same chunk of code was added twice and one of them was subsequently modified ( > became >=) by 8041918. Bottom line this does need fixing in 8u20
18-07-2014

The related issue indicates the problem is in 8u25 not 8u20. "I have verified as well that this test succeeds with 8u20 but not 8u25. The fix within the file hotspot/src/share/vm/classfile/classFileParser.cpp was incorrectly merged for 8u25."
18-07-2014

The link is to a tagging changeset not a merge.
18-07-2014