Any exception thrown between <code>acquire() and release()</code> will result in a dead-lock.  Since you're only catching a single exception, then ignoring it, why not use a <code>try...finally</code> instead, to make sure the lock is always released?