/** * Try to get a lock * * @throws IOException */ public void writeLock() throws IOException { if (hasWriteLock()) return; // already locked if (Resources.exists(lockFile)) { LOGGER.warning("Cannot obtain lock: " + lockFile.path()); Properties props = new Properties(); try (InputStream in = lockFile.in()) { props.load(in); } throw new IOException(Util.convertPropsToString(props, "Already locked")); } else { // success writeLockFileContent(lockFile); lockFileLastModified = lockFile.lastmodified(); LOGGER.info("Successful lock: " + lockFile.path()); } }