JDK-5060160 : RedefineClasses should swap _method_ordering IK field
  • Type: Bug
  • Component: hotspot
  • Sub-Component: jvmti
  • Affected Version: 5.0
  • Priority: P4
  • Status: Closed
  • Resolution: Duplicate
  • OS: generic
  • CPU: generic
  • Submitted: 2004-06-09
  • Updated: 2023-12-13
  • Resolved: 2016-02-23
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
tbdResolved
Related Reports
Duplicate :  
Relates :  
Relates :  
Description
###@###.### 2004-06-08

The following bug has been fixed for Tiger b56.
  5008824: Eclipse sometimes crashes while debugging.

Th solution was to additionally swap the following IK fields
between old and new version of class:
     _inner_classes,
     _major_version,
     annotation fields,
     _enclosing_method_class_index,
     _enclosing_method_method_index

Also, the IK field "_method_ordering" should be swapped as well.
This is very low priority bug - P5 and it's not going to be fixed
for Tiger.

Comments
Closing as duplicate of JDK-8149743.
23-02-2016

Changed the priority from P5 to P4 as P5 is low.
05-06-2014

Will need to make sure this issue still exists.
08-08-2013

SUGGESTED FIX ###@###.### 2004-06-08 The following lines need to be added to function redefine_single_class() in file src/share/vm/prims/jvmtiRedefineClasses.cpp: // Replace method_ordering typeArrayOop old_method_ordering = k_h->method_ordering(); k_h->set_method_ordering(k_h_new->method_ordering()); k_h_new->set_method_ordering(old_method_ordering); Swapping of method_ordering can be added after swapping of _inner_classes field: // Replace inner_classes typeArrayOop old_inner_classes = k_h->inner_classes(); k_h->set_inner_classes(k_h_new->inner_classes()); k_h_new->set_inner_classes(old_inner_classes);
08-09-2004

EVALUATION ###@###.### 2004-06-08 The description says it all.
08-06-2004