< prev index next >

src/hotspot/share/runtime/synchronizer.cpp

Print this page
rev 55936 : [mq]: 8229212.cr0

@@ -427,13 +427,14 @@
     obj = h_obj();
   }
   assert(!obj->mark()->has_bias_pattern(), "biases should be revoked by now");
 
   ObjectMonitor* monitor = inflate(THREAD, obj, inflate_cause_jni_exit);
-  // If this thread has locked the object, exit the monitor.  Note:  can't use
-  // monitor->check(CHECK); must exit even if an exception is pending.
-  if (monitor->check(THREAD)) {
+  // If this thread has locked the object, exit the monitor. We
+  // intentionally do not use CHECK here because we must exit the
+  // monitor even if an exception is pending.
+  if (monitor->check_owner_and_throw_IMSE_if_not(THREAD)) {
     monitor->exit(true, THREAD);
   }
 }
 
 // -----------------------------------------------------------------------------
< prev index next >