diff -r 45071514f87a -r 8237a91c1cca src/hotspot/share/runtime/synchronizer.cpp --- a/src/hotspot/share/runtime/synchronizer.cpp Tue Apr 03 10:27:46 2018 +0200 +++ b/src/hotspot/share/runtime/synchronizer.cpp Tue Apr 03 13:15:27 2018 +0200 @@ -173,7 +173,7 @@ if (mark->has_monitor()) { ObjectMonitor * const mon = mark->monitor(); - assert(mon->object() == obj, "invariant"); + assert(oopDesc::equals((oop) mon->object(), obj), "invariant"); if (mon->owner() != self) return false; // slow-path for IMS exception if (mon->first_waiter() != NULL) { @@ -217,7 +217,7 @@ if (mark->has_monitor()) { ObjectMonitor * const m = mark->monitor(); - assert(m->object() == obj, "invariant"); + assert(oopDesc::equals((oop) m->object(), obj), "invariant"); Thread * const owner = (Thread *) m->_owner; // Lock contention and Transactional Lock Elision (TLE) diagnostics @@ -1404,7 +1404,7 @@ if (mark->has_monitor()) { ObjectMonitor * inf = mark->monitor(); assert(inf->header()->is_neutral(), "invariant"); - assert(inf->object() == object, "invariant"); + assert(oopDesc::equals((oop) inf->object(), object), "invariant"); assert(ObjectSynchronizer::verify_objmon_isinpool(inf), "monitor is invalid"); return inf; }