--- a/hotspot/src/share/vm/classfile/javaClasses.cpp Fri Jul 07 16:49:45 2017 +0000
+++ b/hotspot/src/share/vm/classfile/javaClasses.cpp Fri Jul 07 23:04:06 2017 +0200
@@ -1334,7 +1334,9 @@
// 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_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