diff -r 1f26ac73b909 -r e2bb2b8ff65a hotspot/src/share/vm/runtime/mutex.cpp --- a/hotspot/src/share/vm/runtime/mutex.cpp Mon Aug 07 12:19:17 2017 +0200 +++ b/hotspot/src/share/vm/runtime/mutex.cpp Mon Aug 07 18:50:14 2017 -0400 @@ -1159,9 +1159,12 @@ uintptr_t entrylist = UNS(_EntryList); uintptr_t waitset = UNS(_WaitSet); uintptr_t ondeck = UNS(_OnDeck); + // Print _name with precision limit, in case failure is due to memory + // corruption that also trashed _name. assert((owner|lockword|entrylist|waitset|ondeck) == 0, - "_owner(" INTPTR_FORMAT ")|_LockWord(" INTPTR_FORMAT ")|_EntryList(" INTPTR_FORMAT ")|_WaitSet(" - INTPTR_FORMAT ")|_OnDeck(" INTPTR_FORMAT ") != 0", owner, lockword, entrylist, waitset, ondeck); + "%.*s: _owner(" INTPTR_FORMAT ")|_LockWord(" INTPTR_FORMAT ")|_EntryList(" INTPTR_FORMAT ")|_WaitSet(" + INTPTR_FORMAT ")|_OnDeck(" INTPTR_FORMAT ") != 0", + MONITOR_NAME_LEN, _name, owner, lockword, entrylist, waitset, ondeck); #endif } @@ -1193,10 +1196,6 @@ #endif } -Mutex::~Mutex() { - assert((UNS(_owner)|UNS(_LockWord.FullWord)|UNS(_EntryList)|UNS(_WaitSet)|UNS(_OnDeck)) == 0, ""); -} - Mutex::Mutex(int Rank, const char * name, bool allow_vm_block, SafepointCheckRequired safepoint_check_required) { ClearMonitor((Monitor *) this, name);