6989981: jstack causes "fatal error: ExceptionMark destructor expects no pending exceptions"

Sun, 22 Sep 2013 06:31:43 -0700

author
sla
date
Sun, 22 Sep 2013 06:31:43 -0700
changeset 5757
8ddc26f62476
parent 5756
a7609ec351d6
child 5759
ae2edb3df7fb

6989981: jstack causes "fatal error: ExceptionMark destructor expects no pending exceptions"
Reviewed-by: sla, dsamersoff
Contributed-by: Yasumasa Suenaga <yasu@ysfactory.dip.jp>

src/share/vm/services/attachListener.cpp file | annotate | diff | comparison | revisions
     1.1 --- a/src/share/vm/services/attachListener.cpp	Fri Sep 20 18:19:07 2013 -0700
     1.2 +++ b/src/share/vm/services/attachListener.cpp	Sun Sep 22 06:31:43 2013 -0700
     1.3 @@ -470,7 +470,17 @@
     1.4                         vmSymbols::threadgroup_string_void_signature(),
     1.5                         thread_group,
     1.6                         string,
     1.7 -                       CHECK);
     1.8 +                       THREAD);
     1.9 +
    1.10 +  if (HAS_PENDING_EXCEPTION) {
    1.11 +    tty->print_cr("Exception in VM (AttachListener::init) : ");
    1.12 +    java_lang_Throwable::print(PENDING_EXCEPTION, tty);
    1.13 +    tty->cr();
    1.14 +
    1.15 +    CLEAR_PENDING_EXCEPTION;
    1.16 +
    1.17 +    return;
    1.18 +  }
    1.19  
    1.20    KlassHandle group(THREAD, SystemDictionary::ThreadGroup_klass());
    1.21    JavaCalls::call_special(&result,
    1.22 @@ -479,7 +489,17 @@
    1.23                          vmSymbols::add_method_name(),
    1.24                          vmSymbols::thread_void_signature(),
    1.25                          thread_oop,             // ARG 1
    1.26 -                        CHECK);
    1.27 +                        THREAD);
    1.28 +
    1.29 +  if (HAS_PENDING_EXCEPTION) {
    1.30 +    tty->print_cr("Exception in VM (AttachListener::init) : ");
    1.31 +    java_lang_Throwable::print(PENDING_EXCEPTION, tty);
    1.32 +    tty->cr();
    1.33 +
    1.34 +    CLEAR_PENDING_EXCEPTION;
    1.35 +
    1.36 +    return;
    1.37 +  }
    1.38  
    1.39    { MutexLocker mu(Threads_lock);
    1.40      JavaThread* listener_thread = new JavaThread(&attach_listener_thread_entry);

mercurial