--- old/src/share/vm/gc/shared/concurrentGCThread.cpp Tue May 3 04:08:13 2016 +++ new/src/share/vm/gc/shared/concurrentGCThread.cpp Tue May 3 04:08:12 2016 @@ -82,6 +82,12 @@ run_service(); terminate(); + + // Can't "delete this" before we terminate as other code + // holds references to 'this', but we must do some cleanup + // ourselves before allowing the native thread to terminate + + ThreadLocalStorage::set_thread(NULL); } void ConcurrentGCThread::stop() {