src/share/vm/gc_implementation/shared/gcTrace.cpp

Print this page
rev 4470 : 8011425: NPE in TestObjectCountAfterGCEvent.java on Linux32

@@ -95,13 +95,21 @@
   GCTracer* _gc_tracer;
  public:
   ObjectCountEventSenderClosure(GCTracer* gc_tracer) : _gc_tracer(gc_tracer) {}
  private:
   void do_cinfo(KlassInfoEntry* entry) {
+    if (is_visible_klass(entry->klass())) {
     _gc_tracer->send_object_count_after_gc_event(entry->klass(), entry->count(),
                                                  entry->words() * BytesPerWord);
   }
+  }
+
+  // Do not expose internal implementation specific classes
+  bool is_visible_klass(klassOop k) {
+    return k->klass_part()->oop_is_instance() ||
+           (k->klass_part()->oop_is_array() && k != Universe::systemObjArrayKlassObj());
+  }
 };
 
 void GCTracer::report_object_count_after_gc(BoolObjectClosure *is_alive_cl) {
   if (should_send_object_count_after_gc_event()) {
     ResourceMark rm;