JDK-8034854 : outer_class_info_index of synthetic class is not zero
  • Type: Bug
  • Component: tools
  • Sub-Component: javac
  • Affected Version: 7u51,8
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • OS: generic
  • CPU: generic
  • Submitted: 2014-02-13
  • Updated: 2014-07-29
  • Resolved: 2014-03-24
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 JDK 9
8u20 b09Fixed 9Fixed
Description
Spec: "If a class file has a version number that is greater than or equal to 51.0, and has an InnerClasses attribute in its attributes table, then for all entries in the classes array of the InnerClasses attribute, the value of the outer_class_info_index item must be zero if the value of the inner_name_index item is zero."

Synthetic class has inner classes attribute and inner_name_index is zero, but outer_class_info_index is not zero.

To reproduce use attached code.
Comments
Release team: Approved for deferral.
18-02-2014

8-defer-request justification: does not appear to be a regression in 8, "1.7.0_51-b13" appears to behave in the same way. The incorrect attribute does not appear to be causing major trouble, and while javac should be fixed to conform with the specification (JVMS 7, section 4.7.6.), this does not seem to qualify as a showstopper for 8.
13-02-2014