X-Git-Url: http://source.jalview.org/gitweb/?p=vamsas.git;a=blobdiff_plain;f=src%2Fuk%2Fac%2Fvamsas%2Fclient%2Fsimpleclient%2FFileLock.java;h=920170265e696d6e622c05ebb8ca9a81dd2bbbd0;hp=ef29f47b52b45b8008e19002656e2e7b699932b5;hb=f69cbcaf96076a079dac381630cfd9734c31d114;hpb=c8c7209ad474cce3a5c0e998644ab0eaa0ce9912 diff --git a/src/uk/ac/vamsas/client/simpleclient/FileLock.java b/src/uk/ac/vamsas/client/simpleclient/FileLock.java index ef29f47..9201702 100644 --- a/src/uk/ac/vamsas/client/simpleclient/FileLock.java +++ b/src/uk/ac/vamsas/client/simpleclient/FileLock.java @@ -34,10 +34,13 @@ public class FileLock extends Lock { try { advisory=new NativeLock(_lock, block); } catch (Exception e) { - log.fatal("Failed to create advisory lock file "+_lock,e); - throw new Error("Failed to create advisory lock file "+_lock); + if (!_lock.exists()) { + // advisory cannot be created. this is serious. + log.fatal("Failed to create advisory lock file "+_lock,e); + throw new Error("Failed to create advisory lock file "+_lock); + } } - return advisory.isLocked(); + return (advisory!=null) && advisory.isLocked(); } /** * call to clear up a filelock file after its been made @@ -45,9 +48,10 @@ public class FileLock extends Lock { */ private void tidy() { if (_lock!=null) { - if ( advisory!=null) + if ( advisory!=null) { + advisory.target.deleteOnExit(); // release will null the target advisory.release(true); - advisory.target.deleteOnExit(); + } advisory=null; _lock=null; }