提交 052618f5 编写于 作者: R roland

8029383: assert(counter_changed) failed: failed dependencies, but counter didn't change

Summary: no call to SystemDictionary::notice_modification() when class is defined through Unsafe.defineAnonymousClass() can caused missed dependency change.
Reviewed-by: kvn, twisti
上级 13a50a76
......@@ -1049,6 +1049,9 @@ Klass* SystemDictionary::parse_stream(Symbol* class_name,
add_to_hierarchy(k, CHECK_NULL); // No exception, but can block
// But, do not add to system dictionary.
// compiled code dependencies need to be validated anyway
notice_modification();
}
// Rewrite and patch constant pool here.
......
......@@ -147,9 +147,6 @@ void VM_RedefineClasses::doit() {
_scratch_classes[i] = NULL;
}
// Disable any dependent concurrent compilations
SystemDictionary::notice_modification();
// Set flag indicating that some invariants are no longer true.
// See jvmtiExport.hpp for detailed explanation.
JvmtiExport::set_has_redefined_a_class();
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册