--- a/hotspot/src/share/vm/services/heapDumper.cpp Wed Oct 09 22:01:59 2013 -0400
+++ b/hotspot/src/share/vm/services/heapDumper.cpp Fri Oct 11 14:08:02 2013 +0200
@@ -1545,7 +1545,9 @@
// writes a HPROF_GC_CLASS_DUMP record for the given class
void VM_HeapDumper::do_class_dump(Klass* k) {
- DumperSupport::dump_class_and_array_classes(writer(), k);
+ if (k->oop_is_instance()) {
+ DumperSupport::dump_class_and_array_classes(writer(), k);
+ }
}
// writes a HPROF_GC_CLASS_DUMP records for a given basic type
@@ -1722,7 +1724,7 @@
SymbolTable::symbols_do(&sym_dumper);
// write HPROF_LOAD_CLASS records
- SystemDictionary::classes_do(&do_load_class);
+ ClassLoaderDataGraph::classes_do(&do_load_class);
Universe::basic_type_classes_do(&do_load_class);
// write HPROF_FRAME and HPROF_TRACE records
@@ -1733,7 +1735,7 @@
write_dump_header();
// Writes HPROF_GC_CLASS_DUMP records
- SystemDictionary::classes_do(&do_class_dump);
+ ClassLoaderDataGraph::classes_do(&do_class_dump);
Universe::basic_type_classes_do(&do_basic_type_array_class_dump);
check_segment_length();