--- old/src/share/vm/memory/metaspace.cpp 2013-04-25 10:55:28.065238429 +0200 +++ new/src/share/vm/memory/metaspace.cpp 2013-04-25 10:55:27.961236503 +0200 @@ -2945,7 +2945,7 @@ if (SafepointSynchronize::is_at_safepoint()) { assert(Thread::current()->is_VM_thread(), "should be the VM thread"); // Don't take Heap_lock - MutexLocker ml(vsm()->lock()); + MutexLockerEx ml(vsm()->lock(), Mutex::_no_safepoint_check_flag); if (word_size < TreeChunk::min_size()) { // Dark matter. Too small for dictionary. #ifdef ASSERT @@ -2959,7 +2959,7 @@ vsm()->deallocate(ptr, word_size); } } else { - MutexLocker ml(vsm()->lock()); + MutexLockerEx ml(vsm()->lock(), Mutex::_no_safepoint_check_flag); if (word_size < TreeChunk::min_size()) { // Dark matter. Too small for dictionary.