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);
|
Devirtualizer<nv>::do_klass(closure, klass);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// If klass is NULL then this a mirror for a primitive type.
|
// We would like to assert here (as below) that if klass has been NULL, then
|
||||||
// We don't have to follow them, since they are handled as strong
|
// this has been a mirror for a primitive type that we do not need to follow
|
||||||
// roots in Universe::oops_do.
|
// as they are always strong roots.
|
||||||
assert(java_lang_Class::is_primitive(obj), "Sanity check");
|
// 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