diff -r 409d4b59e095 -r ed5a590835a4 src/share/vm/services/memBaseline.cpp --- a/src/share/vm/services/memBaseline.cpp Tue Apr 30 02:28:42 2013 -0700 +++ b/src/share/vm/services/memBaseline.cpp Tue Apr 30 09:17:06 2013 -0400 @@ -156,7 +156,8 @@ // for the safepoint void MemBaseline::check_safepoint(JavaThread* thr) { if (SafepointSynchronize::is_synchronizing()) { - SafepointSynchronize::block(thr); + // grab and drop the SR_lock to honor the safepoint protocol + MutexLocker ml(thr->SR_lock()); } }