--- old/src/share/vm/gc_implementation/g1/concurrentMark.cpp 2013-01-08 14:04:35.697911635 -0800 +++ new/src/share/vm/gc_implementation/g1/concurrentMark.cpp 2013-01-08 14:04:35.482019238 -0800 @@ -3242,7 +3242,9 @@ } void ConcurrentMark::print_worker_threads_on(outputStream* st) const { - _parallel_workers->print_worker_threads_on(st); + if (parallel_marking_threads() > 0) { + _parallel_workers->print_worker_threads_on(st); + } } // We take a break if someone is trying to stop the world. --- old/src/share/vm/gc_implementation/g1/concurrentMark.hpp 2013-01-08 14:04:36.863813778 -0800 +++ new/src/share/vm/gc_implementation/g1/concurrentMark.hpp 2013-01-08 14:04:36.653365105 -0800 @@ -499,12 +499,12 @@ } // accessor methods - uint parallel_marking_threads() { return _parallel_marking_threads; } - uint max_parallel_marking_threads() { return _max_parallel_marking_threads;} - double sleep_factor() { return _sleep_factor; } - double marking_task_overhead() { return _marking_task_overhead;} - double cleanup_sleep_factor() { return _cleanup_sleep_factor; } - double cleanup_task_overhead() { return _cleanup_task_overhead;} + uint parallel_marking_threads() const { return _parallel_marking_threads; } + uint max_parallel_marking_threads() { return _max_parallel_marking_threads;} + double sleep_factor() { return _sleep_factor; } + double marking_task_overhead() { return _marking_task_overhead;} + double cleanup_sleep_factor() { return _cleanup_sleep_factor; } + double cleanup_task_overhead() { return _cleanup_task_overhead;} HeapWord* finger() { return _finger; } bool concurrent() { return _concurrent; }