Android gingerbread exception: java.lang.IllegalMonitorStateException: unlock of unowned monitor
<p>Here is the full stack trace I got from a user who has a Samsung Nexus S 2.3.5; I've never seen this before:</p>

<blockquote>
  <p>--------- Instruction Stack trace ---------</p>
  
  <ol>
  <li>android.os.MessageQueue.next(MessageQueue.java:154)</li>
  <li>android.os.Looper.loop(Looper.java:117)</li>
  <li>android.app.ActivityThread.main(ActivityThread.java:3683)</li>
  <li>java.lang.reflect.Method.invokeNative(Native Method)</li>
  <li>java.lang.reflect.Method.invoke(Method.java:507)</li>
  <li>
  com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)</li>
  <li>com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)</li>
  <li>dalvik.system.NativeStart.main(Native Method)</li>
  </ol>
  
  <hr>
</blockquote>

<p>The source code (http://hi-android.info/src/android/os/MessageQueue.java.html ) shows that this is the end of a internal synchronized section. How could I have caused this? Any ideas how to work around / solve / make sure my users don't see this?</p>
