mirror of
https://github.com/openjdk/jdk.git
synced 2026-02-06 00:18:34 +00:00
8340679: Misc tests fail assert(!set || SafepointSynchronize::is_at_safepoint()) failed: set once or at safepoint
Reviewed-by: matsaave, iklam
This commit is contained in:
parent
2349bb7ace
commit
e6373b5238
@ -1069,7 +1069,7 @@ bool SystemDictionary::check_shared_class_super_type(InstanceKlass* klass, Insta
|
||||
}
|
||||
|
||||
Klass *found = resolve_with_circularity_detection(klass->name(), super_type->name(),
|
||||
class_loader, protection_domain, is_superclass, CHECK_0);
|
||||
class_loader, protection_domain, is_superclass, CHECK_false);
|
||||
if (found == super_type) {
|
||||
return true;
|
||||
} else {
|
||||
@ -1088,16 +1088,21 @@ bool SystemDictionary::check_shared_class_super_types(InstanceKlass* ik, Handle
|
||||
// If unexpected superclass or interfaces are found, we cannot
|
||||
// load <ik> from the shared archive.
|
||||
|
||||
if (ik->super() != nullptr &&
|
||||
!check_shared_class_super_type(ik, InstanceKlass::cast(ik->super()),
|
||||
class_loader, protection_domain, true, THREAD)) {
|
||||
return false;
|
||||
if (ik->super() != nullptr) {
|
||||
bool check_super = check_shared_class_super_type(ik, InstanceKlass::cast(ik->super()),
|
||||
class_loader, protection_domain, true,
|
||||
CHECK_false);
|
||||
if (!check_super) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
Array<InstanceKlass*>* interfaces = ik->local_interfaces();
|
||||
int num_interfaces = interfaces->length();
|
||||
for (int index = 0; index < num_interfaces; index++) {
|
||||
if (!check_shared_class_super_type(ik, interfaces->at(index), class_loader, protection_domain, false, THREAD)) {
|
||||
bool check_interface = check_shared_class_super_type(ik, interfaces->at(index), class_loader, protection_domain, false,
|
||||
CHECK_false);
|
||||
if (!check_interface) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@ -1153,7 +1158,8 @@ InstanceKlass* SystemDictionary::load_shared_class(InstanceKlass* ik,
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
if (!check_shared_class_super_types(ik, class_loader, protection_domain, THREAD)) {
|
||||
bool check = check_shared_class_super_types(ik, class_loader, protection_domain, CHECK_NULL);
|
||||
if (!check) {
|
||||
ik->set_shared_loading_failed();
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user