< prev index next >

src/hotspot/share/runtime/synchronizer.cpp

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

*** 427,439 **** 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)) { monitor->exit(true, THREAD); } } // ----------------------------------------------------------------------------- --- 427,440 ---- 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. 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 >