The void JvmtiExport::post_method_exit(JavaThread* thread, Method* method, frame current_frame) calculates
bool exception_exit = state->is_exception_detected() && !state->is_exception_caught();
to understand if method exit normally or by exception.
However, this method is not called in the case of exception. See
`void JvmtiExport::notice_unwind_due_to_exception(JavaThread *thread, Method* method, address location, oop exception, bool in_handler_frame)`
where post_method_exit_inner is called directly.
bool exception_exit = state->is_exception_detected() && !state->is_exception_caught();
to understand if method exit normally or by exception.
However, this method is not called in the case of exception. See
`void JvmtiExport::notice_unwind_due_to_exception(JavaThread *thread, Method* method, address location, oop exception, bool in_handler_frame)`
where post_method_exit_inner is called directly.
- relates to
-
JDK-8365192 post_meth_exit should be in vm state when calling get_jvmti_thread_state
-
- Resolved
-
-
JDK-8366591 The JvmtiThreadState::_exception_state is inconsistent.
-
- Open
-
- links to
-
Commit(master) openjdk/jdk/b7b64bb6
-
Review(master) openjdk/jdk/26886