JDK-4915419 : implement EnclosingMethod attribute for local classes
  • Type: Enhancement
  • Component: tools
  • Sub-Component: javac
  • Affected Version: 5.0
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • OS: solaris_8
  • CPU: generic
  • Submitted: 2003-09-01
  • Updated: 2017-05-16
  • Resolved: 2003-11-11
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.
Other
5.0 b28Fixed
Related Reports
Relates :  
Description
implement the new EnclosingMethod attribute described in the latest JSR202 draft:

The EnclosingMethod Attribute
 
The EnclosingMethod attribute is an optional fixed-length attribute.in the attributes table of the ClassFile (?4.2) structure. A class must have an EnclosingMethod attribute if and only if it is a local class or an anonymous class. A class may have no more than one EnclosingMethod attribute.
 
The EnclosingMethod attribute has the following format:
 
EnclosingMethod_attribute {
    u2 attribute_name_index;
    u4 attribute_length;
    u2 class_index
    u2 method_index;
}
 
The items of the EnclosingMethod_attribute structure are as follows:
 
attribute_name_index
 
The value of the attribute_name_index item must be a valid index into the constant_pool table. The constant_pool entry at that index must be a CONSTANT_Utf8_info (?4.5.7) structure representing the string "EnclosingMethod".
 
attribute_length
 
The value of the attribute_length item is four.
 
class_index
 
The value of the class_index item must be a valid index into the constant_pool table. The constant_pool entry at that index must be a CONSTANT_Class_info (?4.5.1) structure representing a the innermost class that encloses the declaration of the current class.
 
method_index
 
If the current class is not immediately enclosed by a method or constructor, then the value of the method_index item must be zero. Otherwise, the value of the method_index item must be a valid index into the constant_pool table. The constant_pool entry at that index must be a CONSTANT_NameAndType_info (?4.5.6) structure representing a the name and type of a method in the class referenced by the class_index attribute above. It is the responsibility of the Java compiler to ensure that the method identified via the method_index is indeed the closest lexically enclosing method of the class that contains this EnclosingMethod attribute.

Comments
CONVERTED DATA BugTraq+ Release Management Values COMMIT TO FIX: tiger-beta FIXED IN: tiger-beta INTEGRATED IN: tiger-b28 tiger-b30 tiger-beta
14-06-2004

EVALUATION As specified
11-06-2004

PUBLIC COMMENTS ...
10-06-2004