8179244: Assert failed in instanceMirrorKlass.inline.hpp
Investigate the failure and upon observing that the assert is too strict, disable it and addd a comment. Reviewed-by: ehelin
This commit is contained in:
parent
d21c547b0e
commit
22d7ce52bb
@ -71,10 +71,15 @@ void InstanceMirrorKlass::oop_oop_iterate(oop obj, OopClosureType* closure) {
|
||||
Devirtualizer<nv>::do_klass(closure, klass);
|
||||
}
|
||||
} else {
|
||||
// If klass is NULL then this a mirror for a primitive type.
|
||||
// We don't have to follow them, since they are handled as strong
|
||||
// roots in Universe::oops_do.
|
||||
assert(java_lang_Class::is_primitive(obj), "Sanity check");
|
||||
// We would like to assert here (as below) that if klass has been NULL, then
|
||||
// this has been a mirror for a primitive type that we do not need to follow
|
||||
// as they are always strong roots.
|
||||
// However, we might get across a klass that just changed during CMS concurrent
|
||||
// marking if allocation occurred in the old generation.
|
||||
// This is benign here, as we keep alive all CLDs that were loaded during the
|
||||
// CMS concurrent phase in the class loading, i.e. they will be iterated over
|
||||
// and kept alive during remark.
|
||||
// assert(java_lang_Class::is_primitive(obj), "Sanity check");
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user