Hmm, might want to look at how `tryLock()` works: 
http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/locks/ReentrantLock.html#tryLock()

It returns true if the current thread already has the lock. Not sure if we might have the same thread doing this on a loop where it might hit the same code twice?