--- old/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp 2013-03-16 11:20:16.331378685 +0100 +++ new/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp 2013-03-16 11:20:16.271378686 +0100 @@ -4906,10 +4906,12 @@ Mutex::_no_safepoint_check_flag); assert(!init_mark_was_synchronous, "but that's impossible!"); checkpointRootsFinalWork(asynch, clear_all_soft_refs, false); + _gc_tracer_cm->report_class_count_after_gc(&_is_alive_closure); } else { // already have all the locks checkpointRootsFinalWork(asynch, clear_all_soft_refs, init_mark_was_synchronous); + _gc_tracer_cm->report_class_count_after_gc(&_is_alive_closure); } verify_work_stacks_empty(); verify_overflow_empty();