--- old/src/share/vm/classfile/systemDictionary.cpp 2016-10-25 10:40:06.201775559 +0200 +++ new/src/share/vm/classfile/systemDictionary.cpp 2016-10-25 10:40:06.150775525 +0200 @@ -496,10 +496,11 @@ assert(calledholdinglock,"must hold lock for notify"); assert((!(lockObject() == _system_loader_lock_obj) && !is_parallelCapable(lockObject)), "unexpected double_lock_wait"); ObjectSynchronizer::notifyall(lockObject, THREAD); - intptr_t recursions = ObjectSynchronizer::complete_exit(lockObject, THREAD); + intptr_t saved_recursions, saved_trace_exit_stack; + ObjectSynchronizer::complete_exit(lockObject, &saved_recursions, &saved_trace_exit_stack, THREAD); SystemDictionary_lock->wait(); SystemDictionary_lock->unlock(); - ObjectSynchronizer::reenter(lockObject, recursions, THREAD); + ObjectSynchronizer::reenter(lockObject, saved_recursions, saved_trace_exit_stack, THREAD); SystemDictionary_lock->lock(); }