src/share/vm/runtime/sharedRuntime.cpp

changeset 9396
b62c44a689e4
parent 8773
1eaa9a72d705
child 9417
65409bcab2ad
     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) {

mercurial