Print the locker thread when waiting on an object

When dumping stacktraces, and if one thread is blocked due to a call
to Object.wait, the dump will just tell us the object pointer it is
waiting on, but not the thread which actually locked the object.

This patch tries to extract that informatation as well.

Note that this information is not always available, since maybe no
other thread aquired the lock yet.

Change-Id: Id0ae23e17c58fc3712251f00b0a741191b5a5aee
diff --git a/vm/interp/Stack.cpp b/vm/interp/Stack.cpp
index 9ef92c7..1433f13 100644
--- a/vm/interp/Stack.cpp
+++ b/vm/interp/Stack.cpp
@@ -1253,6 +1253,9 @@
                         if (obj->clazz == gDvm.classJavaLangVMThread) {
                             joinThread = dvmGetThreadFromThreadObject(obj);
                         }
+                        if (joinThread == NULL) {
+                            joinThread = dvmGetObjectLockHolder(obj);
+                        }
                         printWaitMessage(target, "on", obj, joinThread);
                     }
                 } else if (thread->status == THREAD_MONITOR) {