diff src/share/vm/prims/jvmtiRedefineClasses.cpp @ 2332:fbbeec6dad2d

6512830: Error: assert(tag_at(which).is_unresolved_klass(), "Corrupted constant pool") Summary: Redefine classes copies the constant pool while the constant pool may be resolving strings or classes Reviewed-by: dcubed, dsamersoff, acorn
author coleenp
date Thu, 03 Mar 2011 19:52:23 -0500
parents c5a923563727
children 57552dca1708
line wrap: on
line diff
--- a/src/share/vm/prims/jvmtiRedefineClasses.cpp	Thu Mar 03 19:51:36 2011 -0500
+++ b/src/share/vm/prims/jvmtiRedefineClasses.cpp	Thu Mar 03 19:52:23 2011 -0500
@@ -1084,7 +1084,10 @@
       jbyte old_tag = old_cp->tag_at(old_i).value();
       switch (old_tag) {
       case JVM_CONSTANT_Class:
+      case JVM_CONSTANT_UnresolvedClass:
         // revert the copy to JVM_CONSTANT_UnresolvedClass
+        // May be resolving while calling this so do the same for
+        // JVM_CONSTANT_UnresolvedClass (klass_name_at() deals with transition)
         (*merge_cp_p)->unresolved_klass_at_put(old_i,
           old_cp->klass_name_at(old_i));
         break;