--- old/src/share/vm/services/memSnapshot.cpp 2012-12-17 16:19:25.923400500 +0100 +++ new/src/share/vm/services/memSnapshot.cpp 2012-12-17 16:19:25.627000000 +0100 @@ -389,7 +389,11 @@ MemSnapshot::~MemSnapshot() { assert(MemTracker::shutdown_in_progress(), "native memory tracking still on"); { - MutexLockerEx locker(_lock); + MonitorLockerEx locker(_lock); + + // wakeup all waiters + locker.notify_all(); + if (_alloc_ptrs != NULL) { delete _alloc_ptrs; _alloc_ptrs = NULL;