writeLock.lockInterruptibly();
}
else if ( timeout == 0 ) {
boolean locked = writeLock.tryLock();
if ( ! locked ) {
throw new PessimisticLockException( "lock on key " + key + " was not available" );
}
}
else {
writeLock.tryLock( timeout, TimeUnit.MILLISECONDS );
}
}
catch ( InterruptedException e ) {
throw new PessimisticLockException( "timed out waiting for lock on key " + key, e );
}
acquiredLocksPerThread.get().add( writeLock );
}