From 65d290e2cd1a7a92f53329b551a717dab35eab16 Mon Sep 17 00:00:00 2001 From: Laurent Clouet <4409640-laurent.clouet@users.noreply.gitlab.com> Date: Wed, 20 Aug 2025 15:42:25 +0200 Subject: [PATCH] Fix: create cache directory everytime --- .../com/sheepit/client/config/DirectoryManager.java | 6 ++---- src/main/java/com/sheepit/client/main/Worker.java | 11 +++-------- .../sheepit/client/ui/swing/activity/Settings.java | 1 + 3 files changed, 6 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/sheepit/client/config/DirectoryManager.java b/src/main/java/com/sheepit/client/config/DirectoryManager.java index 434739d..fe9039d 100644 --- a/src/main/java/com/sheepit/client/config/DirectoryManager.java +++ b/src/main/java/com/sheepit/client/config/DirectoryManager.java @@ -101,8 +101,6 @@ public class DirectoryManager { * Creates cache directory */ public void createCacheDir() { - this.removeWorkingDirectory(); - this.configuration.getWorkingDirectory().mkdirs(); this.configuration.getWoolCacheDirectory().mkdirs(); @@ -115,8 +113,8 @@ public class DirectoryManager { } } - public CompletableFuture createCacheDirAsync() { - return CompletableFuture.runAsync(this::createCacheDir); + public CompletableFuture cleanupDirectoryAsync() { + return CompletableFuture.runAsync(this::cleanWorkingDirectory); } /** diff --git a/src/main/java/com/sheepit/client/main/Worker.java b/src/main/java/com/sheepit/client/main/Worker.java index d3e0fab..55288aa 100644 --- a/src/main/java/com/sheepit/client/main/Worker.java +++ b/src/main/java/com/sheepit/client/main/Worker.java @@ -477,15 +477,10 @@ public class Worker { String configFilePath = config.getConfigFilePath() != null ? config.getConfigFilePath() : OS.getOS().getDefaultConfigFilePath(); config.setLogDirectory(log_dir != null ? log_dir : (new File (configFilePath).getParent())); - boolean shouldCreateCache = config.isUserHasSpecifiedACacheDir() == false && cache_dir != null; - CompletableFuture directoryInit; + DirectoryManager directoryManager = new DirectoryManager(config); - if (shouldCreateCache) { - directoryInit = (new DirectoryManager(config)).createCacheDirAsync(); - } - else { - directoryInit = CompletableFuture.completedFuture(null); - } + directoryManager.createCacheDir(); + CompletableFuture directoryInit = directoryManager.cleanupDirectoryAsync(); Log.setInstance(config); Log.getInstance().debug("client version " + Configuration.jarVersion); diff --git a/src/main/java/com/sheepit/client/ui/swing/activity/Settings.java b/src/main/java/com/sheepit/client/ui/swing/activity/Settings.java index 0ff9c04..a82e5cb 100644 --- a/src/main/java/com/sheepit/client/ui/swing/activity/Settings.java +++ b/src/main/java/com/sheepit/client/ui/swing/activity/Settings.java @@ -709,6 +709,7 @@ public class Settings implements Activity { if (fromConfig != null && fromConfig.getAbsolutePath().equals(cacheDir.getAbsolutePath()) == false) { config.setCacheDir(cacheDir); (new DirectoryManager(config)).createCacheDir(); + (new DirectoryManager(config)).cleanWorkingDirectory(); } else { // do nothing because the directory is the same as before