From f48ad21ecc288c280db3ffb2e098df12518e2a5a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paul=20H=C3=BCbner?= Date: Mon, 10 Nov 2025 09:24:45 +0000 Subject: [PATCH] 8371216: oopDesc::print_value_on breaks if klass is garbage Reviewed-by: coleenp, mdoerr --- src/hotspot/share/oops/oop.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/hotspot/share/oops/oop.cpp b/src/hotspot/share/oops/oop.cpp index f874a39bf31..5f453241c3d 100644 --- a/src/hotspot/share/oops/oop.cpp +++ b/src/hotspot/share/oops/oop.cpp @@ -83,7 +83,10 @@ char* oopDesc::print_value_string() { void oopDesc::print_value_on(outputStream* st) const { oop obj = const_cast(this); - if (java_lang_String::is_instance(obj)) { + // We can't use java_lang_String::is_instance since that has klass assertions enabled. + // If the klass is garbage we want to just fail the check and continue printing, as + // opposed to aborting the VM entirely. + if (obj != nullptr && obj->klass_without_asserts() == vmClasses::String_klass()) { java_lang_String::print(obj, st); print_address_on(st); } else {