8229808: javaVFrame::print_lock_info_on fails to disable extra printing
Reviewed-by: hseigel, dcubed
--- a/src/hotspot/share/runtime/vframe.cpp Fri Aug 16 14:42:50 2019 -0700
+++ b/src/hotspot/share/runtime/vframe.cpp Fri Aug 16 18:27:36 2019 -0400
@@ -211,7 +211,6 @@
if (monitor->eliminated() && is_compiled_frame()) { // Eliminated in compiled code
if (monitor->owner_is_scalar_replaced()) {
Klass* k = java_lang_Class::as_Klass(monitor->owner_klass());
- // format below for lockbits matches this one.
st->print("\t- eliminated <owner is scalar replaced> (a %s)", k->external_name());
} else {
Handle obj(THREAD, monitor->owner());
@@ -224,7 +223,6 @@
if (monitor->owner() != NULL) {
// the monitor is associated with an object, i.e., it is locked
- markWord mark(markWord::zero());
const char *lock_state = "locked"; // assume we have the monitor locked
if (!found_first_monitor && frame_count == 0) {
// If this is the first frame and we haven't found an owned
@@ -232,7 +230,7 @@
// the lock or if we are blocked trying to acquire it. Only
// an inflated monitor that is first on the monitor list in
// the first frame can block us on a monitor enter.
- mark = monitor->owner()->mark();
+ markWord mark = monitor->owner()->mark();
if (mark.has_monitor() &&
( // we have marked ourself as pending on this monitor
mark.monitor() == thread()->current_pending_monitor() ||
@@ -240,10 +238,6 @@
!mark.monitor()->is_entered(thread())
)) {
lock_state = "waiting to lock";
- } else {
- // We own the monitor which is not as interesting so
- // disable the extra printing below.
- mark = markWord::zero();
}
}
print_locked_object_class_name(st, Handle(THREAD, monitor->owner()), lock_state);