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 find if method exit normally or by exception. However, JvmtiExport::post_method_exit( method is not called at all 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.
The `exception_exit` is true when exception is processed and the current method is called in the middle of stack unwinding. The fix was a part of https://github.com/openjdk/jdk/pull/26713 for https://bugs.openjdk.org/browse/JDK-8365192 ------------- Commit messages: - more comments in the test - fixed ident - bugid fixed: - updated to fix 8365937 - fixed comment. - test renamed. - Update test/hotspot/jtreg/serviceability/jvmti/events/MethodExit/ExceptionOccurred/libExceptionOccurred.cpp - Update src/hotspot/share/prims/jvmtiExport.cpp - added comments to the test - Update test/hotspot/jtreg/serviceability/jvmti/events/MethodExit/ExceptionOccurred.java - ... and 13 more: https://git.openjdk.org/jdk/compare/e04a3103...e8343e08 Changes: https://git.openjdk.org/jdk/pull/26886/files Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=26886&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8365937 Stats: 334 lines in 5 files changed: 319 ins; 7 del; 8 mod Patch: https://git.openjdk.org/jdk/pull/26886.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/26886/head:pull/26886 PR: https://git.openjdk.org/jdk/pull/26886
