package org.jfrog.wharf.ivy.lock; import java.io.File; import java.io.IOException; /** * Date: 9/15/11 * Time: 10:13 AM * * @author Fred Simon */ public class SimpleFileLockHolder extends BaseFileLockHolder { private boolean lockAcquired = false; public SimpleFileLockHolder(LockHolderFactory factory, File protectedFile) { super(factory, protectedFile); } @Override public void releaseLock() { if (lockAcquired) { if (!lockFile.exists()) { appendLastMessage(" acquired lock file " + lockFile.getAbsolutePath() + " but not present on release!"); } if (!lockFile.delete()) { appendLastMessage(" could not delete lock file!"); } } lockAcquired = false; } @Override public boolean acquireLock() { try { verifyParentDir(); lockAcquired = lockFile.createNewFile(); if (lockAcquired) { lockFile.deleteOnExit(); } } catch (IOException e) { lockAcquired = false; appendLastMessage(" IOException while acquire lock file:" + e.getMessage()); } return lockAcquired; } @Override public void close() throws IOException { releaseLock(); } }