--- old/src/share/vm/classfile/javaClasses.cpp 2019-03-25 19:20:33.985861477 +0800 +++ new/src/share/vm/classfile/javaClasses.cpp 2019-03-25 19:20:33.824866124 +0800 @@ -1047,7 +1047,10 @@ // Read thread status value from threadStatus field in java.lang.Thread java class. java_lang_Thread::ThreadStatus java_lang_Thread::get_thread_status(oop java_thread) { - assert(Thread::current()->is_Watcher_thread() || Thread::current()->is_VM_thread() || + // Make sure the caller is operating on behalf of the VM or is + // running VM code (state == _thread_in_vm). + assert(Threads_lock->owned_by_self() || Thread::current()->is_Watcher_thread() || + Thread::current()->is_VM_thread() || JavaThread::current()->thread_state() == _thread_in_vm, "Java Thread is not running in vm"); // The threadStatus is only present starting in 1.5