8229808: javaVFrame::print_lock_info_on fails to disable extra printing

Reviewed-by: hseigel, dcubed
This commit is contained in:
David Holmes 2019-08-16 18:27:36 -04:00
parent 793585b494
commit 07c1c7fcd8

View File

@ -211,7 +211,6 @@ void javaVFrame::print_lock_info_on(outputStream* st, int frame_count) {
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 @@ void javaVFrame::print_lock_info_on(outputStream* st, int frame_count) {
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 @@ void javaVFrame::print_lock_info_on(outputStream* st, int frame_count) {
// 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 @@ void javaVFrame::print_lock_info_on(outputStream* st, int frame_count) {
!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);