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

Print this page
rev 4468 : 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;