hotspot/src/share/vm/services/heapDumper.cpp
changeset 33778 790c99403d3c
parent 33612 b1487e78deee
child 33794 41ef3dc95179
--- a/hotspot/src/share/vm/services/heapDumper.cpp	Thu Nov 05 07:22:48 2015 +0000
+++ b/hotspot/src/share/vm/services/heapDumper.cpp	Thu Nov 05 11:42:42 2015 +0100
@@ -897,8 +897,10 @@
 void DumperSupport::dump_class_and_array_classes(DumpWriter* writer, Klass* k) {
   InstanceKlass* ik = InstanceKlass::cast(k);
 
-  // Ignore the class if it hasn't been initialized yet
-  if (!ik->is_linked()) {
+  // We can safepoint and do a heap dump at a point where we have a Klass,
+  // but no java mirror class has been setup for it. So we need to check
+  // that the class is at least loaded, to avoid crash from a null mirror.
+  if (!ik->is_loaded()) {
     return;
   }