X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Forg%2Fvamsas%2Fclient%2Fsimpleclient%2FSessionFile.java;h=0eabf6defb391ae623e0dbc0142499272ac67835;hb=25968adf9bc0c109749c5c59c4fdbd16e524f9d0;hp=0ff306eb3d5421fed281720ea29e83ba9cfb72d8;hpb=05cfd5783f5307bbcedb0b9205cebef11dae22df;p=vamsas.git diff --git a/src/org/vamsas/client/simpleclient/SessionFile.java b/src/org/vamsas/client/simpleclient/SessionFile.java index 0ff306e..0eabf6d 100644 --- a/src/org/vamsas/client/simpleclient/SessionFile.java +++ b/src/org/vamsas/client/simpleclient/SessionFile.java @@ -46,17 +46,27 @@ public class SessionFile { fileLock.release(); fileLock = null; if (sessionFile != null) { - if (sessionFile.exists()) { - // TODO: see if we need to loop-wait for locks or they just block until - // lock is made... - do { - if (fileLock!=null) - fileLock.release(); - fileLock = new Lock(sessionFile); // TODO: wait around if we can't get the lock. - } while (!fileLock.isLocked()); - // fileLock = new Lock(sessionFile); - return fileLock.isLocked(); + if (!sessionFile.exists()) { + // create new file + try { + if (!sessionFile.createNewFile()) { + log.error("Failed to create file prior to locking: "+sessionFile); + return false; + } + } catch (IOException e) { + log.error("Exception when trying to create file "+sessionFile, e); + return false; + } } + // TODO: see if we need to loop-wait for locks or they just block until + // lock is made... + do { + if (fileLock!=null) + fileLock.release(); + fileLock = new Lock(sessionFile); // TODO: wait around if we can't get the lock. + } while (!fileLock.isLocked()); + // fileLock = new Lock(sessionFile); + return fileLock.isLocked(); } else log.error("lockFile called for non-initialised SessionFile!");