hotspot/src/share/vm/interpreter/interpreterRuntime.cpp
changeset 25716 fc9bd7814b10
parent 25715 d5a8dbdc5150
parent 25627 b5a1a1f02388
child 25895 03808d9a48b2
--- a/hotspot/src/share/vm/interpreter/interpreterRuntime.cpp	Fri Jul 04 11:46:01 2014 +0200
+++ b/hotspot/src/share/vm/interpreter/interpreterRuntime.cpp	Mon Jul 14 10:15:21 2014 -0400
@@ -416,9 +416,18 @@
 
     // tracing
     if (TraceExceptions) {
-      ttyLocker ttyl;
       ResourceMark rm(thread);
-      tty->print_cr("Exception <%s> (" INTPTR_FORMAT ")", h_exception->print_value_string(), (address)h_exception());
+      Symbol* message = java_lang_Throwable::detail_message(h_exception());
+      ttyLocker ttyl;  // Lock after getting the detail message
+      if (message != NULL) {
+        tty->print_cr("Exception <%s: %s> (" INTPTR_FORMAT ")",
+                      h_exception->print_value_string(), message->as_C_string(),
+                      (address)h_exception());
+      } else {
+        tty->print_cr("Exception <%s> (" INTPTR_FORMAT ")",
+                      h_exception->print_value_string(),
+                      (address)h_exception());
+      }
       tty->print_cr(" thrown in interpreter method <%s>", h_method->print_value_string());
       tty->print_cr(" at bci %d for thread " INTPTR_FORMAT, current_bci, thread);
     }
@@ -1079,6 +1088,7 @@
 address SignatureHandlerLibrary::set_handler_blob() {
   BufferBlob* handler_blob = BufferBlob::create("native signature handlers", blob_size);
   if (handler_blob == NULL) {
+    CompileBroker::handle_full_code_cache();
     return NULL;
   }
   address handler = handler_blob->code_begin();