public static boolean hasSavesInProgress()
{
- return savesInProgress.size() > 0;
+ boolean has = false;
+ for (CompletableFuture cf : savesInProgressCompletableFutures(true))
+ {
+ has |= !cf.isDone();
+ }
+ return has;
}
- public static List<File> savesInProgressFiles()
+ public static List<File> savesInProgressFiles(boolean all)
{
List<File> 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<CompletableFuture<Boolean>> savesInProgressCompletableFutures()
+ public static List<CompletableFuture<Boolean>> savesInProgressCompletableFutures(
+ boolean all)
{
List<CompletableFuture<Boolean>> cfs = new ArrayList<>();
for (BackupFiles bfile : savesInProgress)
{
- cfs.add(bfile.getMyFuture());
+ if (all || !bfile.getMyFuture().isDone())
+ cfs.add(bfile.getMyFuture());
}
return cfs;
}
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
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);
this.setTempFile(temp);
}
- public static void classInit()
+ private static void classInit()
{
Console.initLogger();
Console.trace("BACKUPFILES classInit");