while waiting for lock, try in 30sec intervals and print warnings if no lock

should help a little bit in debugging deadlocks in the process.
especially when the an application does this:
  thread1: begin transaction
  thread2: synchronized void blahMethod { do some code; begintransaction;}
  thread1: with lock ion the database, it now tries to get into the above
           synchronized method
   thread2 has synchronized monitor and thred1 has db lock.
   each wants the other lock
 deadlock.
and our stacktraces will not tell us that thread1 has the database lock.

with this CL, we will know WHO owns the database lock and which thread
dies waiting for the lock.

Change-Id: If51578e7fa0a70ee3d762eb2233d1fddd98a2e86
1 file changed