1.1 --- a/src/share/vm/runtime/sharedRuntime.cpp Tue Apr 03 17:08:37 2018 -0700 1.2 +++ b/src/share/vm/runtime/sharedRuntime.cpp Thu Mar 29 06:53:04 2018 -0400 1.3 @@ -639,7 +639,7 @@ 1.4 // ret_pc points into caller; we are returning caller's exception handler 1.5 // for given exception 1.6 address SharedRuntime::compute_compiled_exc_handler(nmethod* nm, address ret_pc, Handle& exception, 1.7 - bool force_unwind, bool top_frame_only) { 1.8 + bool force_unwind, bool top_frame_only, bool& recursive_exception_occurred) { 1.9 assert(nm != NULL, "must exist"); 1.10 ResourceMark rm; 1.11 1.12 @@ -667,6 +667,7 @@ 1.13 // BCI of the exception handler which caused the exception to be 1.14 // thrown (bugs 4307310 and 4546590). Set "exception" reference 1.15 // argument to ensure that the correct exception is thrown (4870175). 1.16 + recursive_exception_occurred = true; 1.17 exception = Handle(THREAD, PENDING_EXCEPTION); 1.18 CLEAR_PENDING_EXCEPTION; 1.19 if (handler_bci >= 0) {