diff src/share/vm/classfile/systemDictionary.cpp @ 2244:4f26f535a225

6354181: nsk.logging.stress.threads.scmhml001 fails assertion in "src/share/vm/oops/instanceKlass.cpp, 111" Reviewed-by: jrose, acorn
author never
date Mon, 31 Jan 2011 17:48:21 -0800
parents 3582bf76420e
children 2ab52cda08e5 72dee110246f
line wrap: on
line diff
--- a/src/share/vm/classfile/systemDictionary.cpp	Thu Jan 27 16:11:27 2011 -0800
+++ b/src/share/vm/classfile/systemDictionary.cpp	Mon Jan 31 17:48:21 2011 -0800
@@ -1690,6 +1690,8 @@
 
 void SystemDictionary::add_to_hierarchy(instanceKlassHandle k, TRAPS) {
   assert(k.not_null(), "just checking");
+  assert_locked_or_safepoint(Compile_lock);
+
   // Link into hierachy. Make sure the vtables are initialized before linking into
   k->append_to_sibling_list();                    // add to superklass/sibling list
   k->process_interfaces(THREAD);                  // handle all "implements" declarations
@@ -2152,6 +2154,9 @@
 }
 
 
+// Try to find a class name using the loader constraints.  The
+// loader constraints might know about a class that isn't fully loaded
+// yet and these will be ignored.
 klassOop SystemDictionary::find_constrained_instance_or_array_klass(
                     Symbol* class_name, Handle class_loader, TRAPS) {