--- old/src/hotspot/share/runtime/objectMonitor.cpp 2019-08-28 15:03:29.370958452 -0400 +++ new/src/hotspot/share/runtime/objectMonitor.cpp 2019-08-28 15:03:29.186958458 -0400 @@ -2111,6 +2111,13 @@ om_ptr->dec_ref_count(); return false; } + if (om_ptr->ref_count() <= 0) { + // Async deflation is in the process of bailing out, but has not + // yet restored the ref_count field so we return false to force + // a retry. We want a positive ref_count value for a true return. + om_ptr->dec_ref_count(); + return false; + } // The ObjectMonitor could have been deflated and reused for // another object before we bumped the ref_count so make sure // our object still refers to this ObjectMonitor.