SUGGESTED FIX
*** /tmp/geta16043 Thu Mar 1 16:21:46 2007
--- systemDictionary.cpp Thu Mar 1 15:36:46 2007
***************
*** 2078,2083 ****
--- 2078,2084 ----
if (t != T_OBJECT) {
klass = Universe::typeArrayKlassObj(t);
} else {
symbolHandle elem_name(THREAD, object_key);
+ MutexLocker mu(SystemDictionary_lock, THREAD);
klass = constraints()->find_constrained_elem_klass(class_name, elem_name, class_loader, THREAD);
}
***************
*** 2085,2090 ****
--- 2086,2092 ----
klass = Klass::cast(klass)->array_klass_or_null(dimension);
}
} else {
+ MutexLocker mu(SystemDictionary_lock, THREAD);
// Non-array classes are easy: simply check the constraint table.
klass = constraints()->find_constrained_klass(class_name, class_loader);
}
Edited to show handle being created before taking lock.
|