code: private void lock() throws IOException {
  		try {
  			lock.lockInterruptibly();
  		}
  		catch (InterruptedException e) {
  			Thread.currentThread().interrupt();
  			throw new IOException("interrupted");
  		}
  	}
docs: ------------------------------------------------------------------------