--- old/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp 2013-03-11 17:49:01.000000000 +0100 +++ new/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp 2013-03-11 17:49:01.000000000 +0100 @@ -891,12 +891,9 @@ assert(full || size > 0, "otherwise we don't want to collect"); GenCollectedHeap* gch = GenCollectedHeap::heap(); - - _gc_timer->register_gc_start(os::elapsed_counter()); ParNewTracer gc_tracer; - gc_tracer.report_gc_start(gch->gc_cause(), _gc_timer->gc_start()); - gch->trace_heap_before_gc(&gc_tracer); + _gc_timer->register_gc_start(os::elapsed_counter()); assert(gch->kind() == CollectedHeap::GenCollectedHeap, "not a CMS generational heap"); @@ -927,6 +924,9 @@ } assert(to()->is_empty(), "Else not collection_attempt_is_safe"); + gc_tracer.report_gc_start(gch->gc_cause(), _gc_timer->gc_start()); + gch->trace_heap_before_gc(&gc_tracer); + init_assuming_no_promotion_failure(); if (UseAdaptiveSizePolicy) {