diff src/share/vm/runtime/sharedRuntime.cpp @ 23745:a074ae16281d

backport of JDK-8164480
author Doug Simon <doug.simon@oracle.com>
date Fri, 26 Aug 2016 17:49:18 +0200
parents dd9cc155639c
children f13e777eb255
line wrap: on
line diff
--- a/src/share/vm/runtime/sharedRuntime.cpp	Wed Aug 24 22:31:34 2016 +0200
+++ b/src/share/vm/runtime/sharedRuntime.cpp	Fri Aug 26 17:49:18 2016 +0200
@@ -646,7 +646,7 @@
 // ret_pc points into caller; we are returning caller's exception handler
 // for given exception
 address SharedRuntime::compute_compiled_exc_handler(nmethod* nm, address ret_pc, Handle& exception,
-                                                    bool force_unwind, bool top_frame_only) {
+                                                    bool force_unwind, bool top_frame_only, bool& recursive_exception_occurred) {
   assert(nm != NULL, "must exist");
   ResourceMark rm;
 
@@ -701,6 +701,7 @@
         // BCI of the exception handler which caused the exception to be
         // thrown (bugs 4307310 and 4546590). Set "exception" reference
         // argument to ensure that the correct exception is thrown (4870175).
+        recursive_exception_occurred = true;
         exception = Handle(THREAD, PENDING_EXCEPTION);
         CLEAR_PENDING_EXCEPTION;
         if (handler_bci >= 0) {