< 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 >