X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fjalview%2Fio%2FBackupFiles.java;h=c67c307d223badfe1d10349283b4a846e57aee75;hb=b19880049cdb11882e68c75d7960465be4aa8665;hp=88524d17d37d7a936c6ddee1c5a860cb20e17887;hpb=b364e1e6d199002069dab615d1007799b5bb71e1;p=jalview.git diff --git a/src/jalview/io/BackupFiles.java b/src/jalview/io/BackupFiles.java index 88524d1..c67c307 100644 --- a/src/jalview/io/BackupFiles.java +++ b/src/jalview/io/BackupFiles.java @@ -166,25 +166,33 @@ public class BackupFiles public static boolean hasSavesInProgress() { - return savesInProgress.size() > 0; + boolean has = false; + for (CompletableFuture cf : savesInProgressCompletableFutures(true)) + { + has |= !cf.isDone(); + } + return has; } - public static List savesInProgressFiles() + public static List savesInProgressFiles(boolean all) { List files = new ArrayList<>(); for (BackupFiles bfile : savesInProgress) { - files.add(bfile.getFile()); + if (all || !bfile.getMyFuture().isDone()) + files.add(bfile.getFile()); } return files; } - public static List> savesInProgressCompletableFutures() + public static List> savesInProgressCompletableFutures( + boolean all) { List> cfs = new ArrayList<>(); for (BackupFiles bfile : savesInProgress) { - cfs.add(bfile.getMyFuture()); + if (all || !bfile.getMyFuture().isDone()) + cfs.add(bfile.getMyFuture()); } return cfs; } @@ -224,6 +232,12 @@ public class BackupFiles public BackupFiles(File file) { classInit(); + if (file.getParentFile() == null) + { + // filename probably in pwd represented with no parent -- fix it before + // it's a problem + file = file.getAbsoluteFile(); + } this.file = file; // add this file from the save in progress stack @@ -244,7 +258,8 @@ public class BackupFiles if (file != null) { String tempfilename = file.getName(); - File tempdir = file.getParentFile(); + File tempdir = file.getAbsoluteFile().getParentFile(); + tempdir.mkdirs(); Console.trace( "BACKUPFILES [file!=null] attempting to create temp file for " + tempfilename + " in dir " + tempdir); @@ -274,7 +289,7 @@ public class BackupFiles this.setTempFile(temp); } - public static void classInit() + private static void classInit() { Console.initLogger(); Console.trace("BACKUPFILES classInit");