Log when a Thread tries to set its name.
Useful when debugging early failures to have thread names rather than just ids.
Change-Id: I3e00e530847cabb70a1894d2ddaaeb0251642aad
diff --git a/src/java_lang_Thread.cc b/src/java_lang_Thread.cc
index d2f1349..b1da60d 100644
--- a/src/java_lang_Thread.cc
+++ b/src/java_lang_Thread.cc
@@ -16,6 +16,7 @@
#include "jni_internal.h"
#include "object.h"
+#include "ScopedUtfChars.h"
#include "thread.h"
#include "thread_list.h"
@@ -72,11 +73,18 @@
void Thread_nativeSetName(JNIEnv* env, jobject javaThread, jstring javaName) {
ThreadListLock lock;
- // TODO: needed for debugging (DDMS) support.
- //Thread* thread = Thread::FromManagedThread(env, javaThread);
- //StringObject* nameStr = (StringObject*) dvmDecodeIndirectRef(env, javaName);
- //int threadId = (thread != NULL) ? thread->threadId : -1;
- //dvmDdmSendThreadNameChange(threadId, nameStr);
+ Thread* thread = Thread::FromManagedThread(env, javaThread);
+ if (thread != NULL) {
+ ScopedUtfChars name(env, javaName);
+ if (name.c_str() == NULL) {
+ return;
+ }
+ LOG(INFO) << "Thread " << *thread << " changing name to '" << name.c_str() << "'";
+ // TODO: needed for debugging (DDMS) support.
+ //StringObject* nameStr = (StringObject*) dvmDecodeIndirectRef(env, javaName);
+ //int threadId = (thread != NULL) ? thread->threadId : -1;
+ //dvmDdmSendThreadNameChange(threadId, nameStr);
+ }
}
/*