diff -r 42df21744b50 -r ef2d1b8f2dd4 src/share/vm/runtime/java.cpp --- a/src/share/vm/runtime/java.cpp Fri Jun 10 15:44:02 2011 -0700 +++ b/src/share/vm/runtime/java.cpp Mon Jun 13 09:58:16 2011 -0700 @@ -468,12 +468,10 @@ StatSampler::disengage(); StatSampler::destroy(); -#ifndef SERIALGC - // stop CMS threads - if (UseConcMarkSweepGC) { - ConcurrentMarkSweepThread::stop(); - } -#endif // SERIALGC + // We do not need to explicitly stop concurrent GC threads because the + // JVM will be taken down at a safepoint when such threads are inactive -- + // except for some concurrent G1 threads, see (comment in) + // Threads::destroy_vm(). // Print GC/heap related information. if (PrintGCDetails) {