comparison src/share/vm/prims/jvmtiRedefineClasses.cpp @ 14220:f9508a2fd4d8

8029383: assert(counter_changed) failed: failed dependencies, but counter didn't change Summary: no call to SystemDictionary::notice_modification() when class is defined through Unsafe.defineAnonymousClass() can caused missed dependency change. Reviewed-by: kvn, twisti
author roland
date Fri, 13 Dec 2013 09:25:44 +0100
parents ac9cb1d5a202
children ee5727365ce5
comparison
equal deleted inserted replaced
14219:9ae5189791f4 14220:f9508a2fd4d8
144 // Free the memory for this class at class unloading time. Not before 144 // Free the memory for this class at class unloading time. Not before
145 // because CMS might think this is still live. 145 // because CMS might think this is still live.
146 cld->add_to_deallocate_list((InstanceKlass*)_scratch_classes[i]); 146 cld->add_to_deallocate_list((InstanceKlass*)_scratch_classes[i]);
147 _scratch_classes[i] = NULL; 147 _scratch_classes[i] = NULL;
148 } 148 }
149
150 // Disable any dependent concurrent compilations
151 SystemDictionary::notice_modification();
152 149
153 // Set flag indicating that some invariants are no longer true. 150 // Set flag indicating that some invariants are no longer true.
154 // See jvmtiExport.hpp for detailed explanation. 151 // See jvmtiExport.hpp for detailed explanation.
155 JvmtiExport::set_has_redefined_a_class(); 152 JvmtiExport::set_has_redefined_a_class();
156 153