mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-28 07:14:30 +02:00
8029383: assert(counter_changed) failed: failed dependencies, but counter didn't change
No call to SystemDictionary::notice_modification() when class is defined through Unsafe.defineAnonymousClass() can caused missed dependency change. Reviewed-by: kvn, twisti
This commit is contained in:
parent
da079783f8
commit
bbb97e5b39
2 changed files with 3 additions and 3 deletions
|
@ -1049,6 +1049,9 @@ Klass* SystemDictionary::parse_stream(Symbol* class_name,
|
||||||
add_to_hierarchy(k, CHECK_NULL); // No exception, but can block
|
add_to_hierarchy(k, CHECK_NULL); // No exception, but can block
|
||||||
|
|
||||||
// But, do not add to system dictionary.
|
// But, do not add to system dictionary.
|
||||||
|
|
||||||
|
// compiled code dependencies need to be validated anyway
|
||||||
|
notice_modification();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Rewrite and patch constant pool here.
|
// Rewrite and patch constant pool here.
|
||||||
|
|
|
@ -147,9 +147,6 @@ void VM_RedefineClasses::doit() {
|
||||||
_scratch_classes[i] = NULL;
|
_scratch_classes[i] = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Disable any dependent concurrent compilations
|
|
||||||
SystemDictionary::notice_modification();
|
|
||||||
|
|
||||||
// Set flag indicating that some invariants are no longer true.
|
// Set flag indicating that some invariants are no longer true.
|
||||||
// See jvmtiExport.hpp for detailed explanation.
|
// See jvmtiExport.hpp for detailed explanation.
|
||||||
JvmtiExport::set_has_redefined_a_class();
|
JvmtiExport::set_has_redefined_a_class();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue