Add ClassLoaderDataGraph_lock to define new class in enhanced

redefiniton

ClassLoaderDataGraph locking for introduced in redefinition in
java.version>11
This commit is contained in:
Vladimir Dvorak
2021-02-20 15:47:47 +01:00
committed by Vitaly Provodin
parent c1327f4088
commit f591e82c0f

View File

@@ -1443,7 +1443,9 @@ void SystemDictionary::define_instance_class(InstanceKlass* k, InstanceKlass* ol
if (is_redefining) {
// Update all dictionaries containing old_class to new_class
// outcome must be same as result of standard redefinition, that does not create a new Klass
ClassLoaderDataGraph_lock->lock();
bool ok = ClassLoaderDataGraph::dictionary_classes_do_update_klass(name_h, k, old_klass);
ClassLoaderDataGraph_lock->unlock();
assert (ok, "must have found old class and updated!");
}
check_constraints(name_hash, k, class_loader, !is_redefining, CHECK);