comparison src/share/vm/services/attachListener.cpp @ 12289:8ddc26f62476

6989981: jstack causes "fatal error: ExceptionMark destructor expects no pending exceptions" Reviewed-by: sla, dsamersoff Contributed-by: Yasumasa Suenaga <yasu@ysfactory.dip.jp>
author sla
date Sun, 22 Sep 2013 06:31:43 -0700
parents f2110083203d
children a07c25e4f67e
comparison
equal deleted inserted replaced
12288:a7609ec351d6 12289:8ddc26f62476
468 klass, 468 klass,
469 vmSymbols::object_initializer_name(), 469 vmSymbols::object_initializer_name(),
470 vmSymbols::threadgroup_string_void_signature(), 470 vmSymbols::threadgroup_string_void_signature(),
471 thread_group, 471 thread_group,
472 string, 472 string,
473 CHECK); 473 THREAD);
474
475 if (HAS_PENDING_EXCEPTION) {
476 tty->print_cr("Exception in VM (AttachListener::init) : ");
477 java_lang_Throwable::print(PENDING_EXCEPTION, tty);
478 tty->cr();
479
480 CLEAR_PENDING_EXCEPTION;
481
482 return;
483 }
474 484
475 KlassHandle group(THREAD, SystemDictionary::ThreadGroup_klass()); 485 KlassHandle group(THREAD, SystemDictionary::ThreadGroup_klass());
476 JavaCalls::call_special(&result, 486 JavaCalls::call_special(&result,
477 thread_group, 487 thread_group,
478 group, 488 group,
479 vmSymbols::add_method_name(), 489 vmSymbols::add_method_name(),
480 vmSymbols::thread_void_signature(), 490 vmSymbols::thread_void_signature(),
481 thread_oop, // ARG 1 491 thread_oop, // ARG 1
482 CHECK); 492 THREAD);
493
494 if (HAS_PENDING_EXCEPTION) {
495 tty->print_cr("Exception in VM (AttachListener::init) : ");
496 java_lang_Throwable::print(PENDING_EXCEPTION, tty);
497 tty->cr();
498
499 CLEAR_PENDING_EXCEPTION;
500
501 return;
502 }
483 503
484 { MutexLocker mu(Threads_lock); 504 { MutexLocker mu(Threads_lock);
485 JavaThread* listener_thread = new JavaThread(&attach_listener_thread_entry); 505 JavaThread* listener_thread = new JavaThread(&attach_listener_thread_entry);
486 506
487 // Check that thread and osthread were created 507 // Check that thread and osthread were created