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,17 +3359,19 @@
       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");
       warning("java.lang.ArithmeticException has not been initialized");
       warning("java.lang.StackOverflowError has not been initialized");
+      warning("java.lang.IllegalArgumentException has not been initialized");
     }
   }
 
   // See        : bugid 4211085.
   // Background : the static initializer of java.lang.Compiler tries to read

@@ -3400,10 +3397,15 @@
   // This should also be taken out as soon as 4211383 gets fixed.
   reset_vm_info_property(CHECK_0);
 
   quicken_jni_functions();
 
+  // Must be run after init_ft which initializes ft_enabled
+  if (TRACE_INITIALIZE() != JNI_OK) {
+    vm_exit_during_initialization("Failed to initialize tracing backend");
+  }
+
   // Set flag that basic initialization has completed. Used by exceptions and various
   // debug stuff, that does not work until all basic classes have been initialized.
   set_init_completed();
 
 #ifndef USDT2