8072863: Replace fatal() with vm_exit_during_initialization() when an incorrect class is found on the bootclasspath
authordbuck
Mon, 13 Apr 2015 23:04:02 -0700
changeset 30238 4cb81d03d19f
parent 30237 c901e751e681
child 30239 dc83236ebb28
8072863: Replace fatal() with vm_exit_during_initialization() when an incorrect class is found on the bootclasspath Reviewed-by: dholmes, coleenp Contributed-by: Cheleswer Sahu <cheleswer.sahu@oracle.com>
hotspot/src/share/vm/classfile/javaClasses.cpp
hotspot/src/share/vm/prims/whitebox.cpp
--- a/hotspot/src/share/vm/classfile/javaClasses.cpp	Fri Apr 10 15:18:45 2015 +0000
+++ b/hotspot/src/share/vm/classfile/javaClasses.cpp	Mon Apr 13 23:04:02 2015 -0700
@@ -126,7 +126,7 @@
       tty->print_cr("  name: %s, sig: %s, flags: %08x", fs.name()->as_C_string(), fs.signature()->as_C_string(), fs.access_flags().as_int());
     }
 #endif //PRODUCT
-    fatal("Invalid layout of preloaded class");
+    vm_exit_during_initialization("Invalid layout of preloaded class: use -XX:+TraceClassLoading to see the origin of the problem class");
   }
   dest_offset = fd.offset();
 }
@@ -3626,7 +3626,7 @@
     tty->print_cr("  name: %s, sig: %s, flags: %08x", fs.name()->as_C_string(), fs.signature()->as_C_string(), fs.access_flags().as_int());
   }
 #endif //PRODUCT
-  fatal("Invalid layout of preloaded class");
+  vm_exit_during_initialization("Invalid layout of preloaded class: use -XX:+TraceClassLoading to see the origin of the problem class");
   return -1;
 }
 
--- a/hotspot/src/share/vm/prims/whitebox.cpp	Fri Apr 10 15:18:45 2015 +0000
+++ b/hotspot/src/share/vm/prims/whitebox.cpp	Mon Apr 13 23:04:02 2015 -0700
@@ -1234,7 +1234,7 @@
   if (res == NULL) {
     tty->print_cr("Invalid layout of %s at %s", ik->external_name(),
         name_symbol->as_C_string());
-    fatal("Invalid layout of preloaded class");
+    vm_exit_during_initialization("Invalid layout of preloaded class: use -XX:+TraceClassLoading to see the origin of the problem class");
   }
 
   //fetch the field at the offset we've found