Make sure threads allocating are in the kRunnable state
Change-Id: I55a08fcd38b3388698ef571d2d4fa9553210e197
diff --git a/src/java_lang_Thread.cc b/src/java_lang_Thread.cc
index 9a91f77..891238e 100644
--- a/src/java_lang_Thread.cc
+++ b/src/java_lang_Thread.cc
@@ -55,12 +55,13 @@
}
jboolean Thread_nativeHoldsLock(JNIEnv* env, jobject javaThread, jobject javaObject) {
- ThreadListLock lock;
Object* object = Decode<Object*>(env, javaObject);
if (object == NULL) {
+ ScopedThreadStateChange tsc(Thread::Current(), Thread::kRunnable);
Thread::Current()->ThrowNewException("Ljava/lang/NullPointerException;", "object == null");
return JNI_FALSE;
}
+ ThreadListLock lock;
Thread* thread = Thread::FromManagedThread(env, javaThread);
return thread->HoldsLock(object);
}