--- old/src/share/vm/gc/shenandoah/shenandoahHeap.cpp 2016-12-19 17:24:26.515573007 +0100 +++ new/src/share/vm/gc/shenandoah/shenandoahHeap.cpp 2016-12-19 17:24:26.432574055 +0100 @@ -1886,6 +1886,7 @@ cancel_concgc(_oom_evacuation); if ((! Thread::current()->is_GC_task_thread()) && (! Thread::current()->is_ConcurrentGC_thread())) { + assert(! Threads_lock->owned_by_self(), "must not hold Threads_lock here"); log_warning(gc)("OOM during evacuation. Let Java thread wait until evacuation finishes."); while (_evacuation_in_progress) { // wait. Thread::current()->_ParkEvent->park(1);