src/share/vm/runtime/thread.cpp

Print this page
rev 3087 : 7141252: Diagnostic Framework Default parser fixes

@@ -3218,15 +3218,10 @@
     delete main_thread;
     *canTryAgain = false; // don't let caller call JNI_CreateJavaVM again
     return status;
   }
 
-  // Must be run after init_ft which initializes ft_enabled
-  if (TRACE_INITIALIZE() != JNI_OK) {
-    vm_exit_during_initialization("Failed to initialize tracing backend");
-  }
-
   // Should be done after the heap is fully created
   main_thread->cache_global_variables();
 
   HandleMark hm;
 

@@ -3364,10 +3359,11 @@
       initialize_class(vmSymbols::java_lang_ClassCastException(), CHECK_0);
       initialize_class(vmSymbols::java_lang_ArrayStoreException(), CHECK_0);
       initialize_class(vmSymbols::java_lang_ArithmeticException(), CHECK_0);
       initialize_class(vmSymbols::java_lang_StackOverflowError(), CHECK_0);
       initialize_class(vmSymbols::java_lang_IllegalMonitorStateException(), CHECK_0);
+      initialize_class(vmSymbols::java_lang_IllegalArgumentException(), CHECK_0);
     } else {
       warning("java.lang.OutOfMemoryError has not been initialized");
       warning("java.lang.NullPointerException has not been initialized");
       warning("java.lang.ClassCastException has not been initialized");
       warning("java.lang.ArrayStoreException has not been initialized");

@@ -3410,10 +3406,15 @@
   HS_DTRACE_PROBE(hotspot, vm__init__end);
 #else /* USDT2 */
   HOTSPOT_VM_INIT_END();
 #endif /* USDT2 */
 
+  // Must be run after init_ft which initializes ft_enabled
+  if (TRACE_INITIALIZE() != JNI_OK) {
+    vm_exit_during_initialization("Failed to initialize tracing backend");
+  }
+
   // record VM initialization completion time
   Management::record_vm_init_completed();
 
   // Compute system loader. Note that this has to occur after set_init_completed, since
   // valid exceptions may be thrown in the process.