mirror of
https://github.com/openjdk/jdk.git
synced 2026-01-31 05:28:33 +00:00
8316711: SEGV in LoaderConstraintTable::find_loader_constraint after JDK-8310874
Reviewed-by: dcubed, iklam
This commit is contained in:
parent
e015e6ce28
commit
68a9c81040
@ -448,6 +448,7 @@ InstanceKlass* LoaderConstraintTable::find_constrained_klass(Symbol* name,
|
||||
void LoaderConstraintTable::remove_failed_loaded_klass(InstanceKlass* klass,
|
||||
ClassLoaderData* loader) {
|
||||
|
||||
MutexLocker ml(SystemDictionary_lock);
|
||||
Symbol* name = klass->name();
|
||||
LoaderConstraint *p = find_loader_constraint(name, loader);
|
||||
if (p != nullptr && p->klass() != nullptr && p->klass() == klass) {
|
||||
|
||||
@ -1524,12 +1524,10 @@ InstanceKlass* SystemDictionary::find_or_define_instance_class(Symbol* class_nam
|
||||
assert(defined_k != nullptr, "Should have a klass if there's no exception");
|
||||
k->class_loader_data()->add_to_deallocate_list(k);
|
||||
} else if (HAS_PENDING_EXCEPTION) {
|
||||
// Remove this InstanceKlass from the LoaderConstraintTable if added.
|
||||
LoaderConstraintTable::remove_failed_loaded_klass(k, class_loader_data(class_loader));
|
||||
assert(defined_k == nullptr, "Should not have a klass if there's an exception");
|
||||
k->class_loader_data()->add_to_deallocate_list(k);
|
||||
|
||||
// Also remove this InstanceKlass from the LoaderConstraintTable if added.
|
||||
MutexLocker ml(SystemDictionary_lock);
|
||||
LoaderConstraintTable::remove_failed_loaded_klass(k, class_loader_data(class_loader));
|
||||
}
|
||||
return defined_k;
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user