In SystemDictionary::resolve_from_stream() we have this:
// Make sure that we didn't leave a place holder in the
// SystemDictionary
debug_only( {
MutexLocker mu(SystemDictionary_lock);
oop check = find_class_or_placeholder(class_name, class_loader);
assert(check->is_klass(), "found symbol oop, should have been a klass");
oop check2 = find_class_or_placeholder(k->name(), k->class_loader());
assert(check == check2, "name inconsistancy in SystemDictionary");
} );
The first assert is too strong, it is legal for class_name to
be null. The SystemDictionary fires another assert when we attempt to
probe for the null class_name.
// Make sure that we didn't leave a place holder in the
// SystemDictionary
debug_only( {
MutexLocker mu(SystemDictionary_lock);
oop check = find_class_or_placeholder(class_name, class_loader);
assert(check->is_klass(), "found symbol oop, should have been a klass");
oop check2 = find_class_or_placeholder(k->name(), k->class_loader());
assert(check == check2, "name inconsistancy in SystemDictionary");
} );
The first assert is too strong, it is legal for class_name to
be null. The SystemDictionary fires another assert when we attempt to
probe for the null class_name.
- duplicates
-
JDK-4503723 runThese crashes with assertion at handles.hpp, 67
-
- Closed
-