--- old/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp 2012-11-30 11:49:14.429653158 -0800 +++ new/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp 2012-11-30 11:49:14.212480333 -0800 @@ -3690,6 +3690,7 @@ g1_policy()->print_heap_transition(); gclog_or_tty->print_cr(", %3.7f secs]", pause_time_sec); } + gclog_or_tty->flush(); } bool @@ -4036,10 +4037,11 @@ #endif gc_epilogue(false); - - log_gc_footer(os::elapsedTime() - pause_start_sec); } + // Print the remainder of the GC log output. + log_gc_footer(os::elapsedTime() - pause_start_sec); + // It is not yet to safe to tell the concurrent mark to // start as we have some optional output below. We don't want the // output from the concurrent mark thread interfering with this --- old/src/share/vm/runtime/timer.cpp 2012-11-30 11:49:16.100409736 -0800 +++ new/src/share/vm/runtime/timer.cpp 2012-11-30 11:49:15.896188514 -0800 @@ -210,8 +210,9 @@ } else { _logfile->print("[Error in TraceCPUTime]"); } - if (_print_cr) { + if (_print_cr) { _logfile->print_cr(""); } + _logfile->flush(); } }