Sun, 22 Sep 2013 06:31:43 -0700
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);