diff --git a/src/main/java/org/qortal/arbitrary/ArbitraryDataResource.java b/src/main/java/org/qortal/arbitrary/ArbitraryDataResource.java index 95ed6675..65c92cc6 100644 --- a/src/main/java/org/qortal/arbitrary/ArbitraryDataResource.java +++ b/src/main/java/org/qortal/arbitrary/ArbitraryDataResource.java @@ -1,5 +1,7 @@ package org.qortal.arbitrary; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.qortal.arbitrary.ArbitraryDataFile.ResourceIdType; import org.qortal.arbitrary.misc.Service; import org.qortal.controller.arbitrary.ArbitraryDataBuildManager; @@ -25,6 +27,8 @@ import static org.qortal.data.arbitrary.ArbitraryResourceStatus.Status; public class ArbitraryDataResource { + private static final Logger LOGGER = LogManager.getLogger(ArbitraryDataResource.class); + protected final String resourceId; protected final ResourceIdType resourceIdType; protected final Service service; @@ -124,7 +128,10 @@ public class ArbitraryDataResource { String identifier = this.identifier != null ? this.identifier : "default"; Path cachePath = Paths.get(baseDir, "reader", this.resourceIdType.toString(), this.resourceId, this.service.toString(), identifier); if (cachePath.toFile().exists()) { - FilesystemUtils.safeDeleteDirectory(cachePath, true); + boolean success = FilesystemUtils.safeDeleteDirectory(cachePath, true); + if (success) { + LOGGER.info("Cleared cache for resource {}", this.toString()); + } } } diff --git a/src/main/java/org/qortal/controller/arbitrary/ArbitraryDataFileListManager.java b/src/main/java/org/qortal/controller/arbitrary/ArbitraryDataFileListManager.java index 3f9e425e..f9656f14 100644 --- a/src/main/java/org/qortal/controller/arbitrary/ArbitraryDataFileListManager.java +++ b/src/main/java/org/qortal/controller/arbitrary/ArbitraryDataFileListManager.java @@ -242,7 +242,7 @@ public class ArbitraryDataFileListManager { return ArbitraryDataFileManager.getInstance().fetchDataFilesFromPeersForSignature(signature); } - LOGGER.debug("Skipping file list request for signature {} due to rate limit", signature58); + LOGGER.trace("Skipping file list request for signature {} due to rate limit", signature58); return false; } this.addToSignatureRequests(signature58, true, false); diff --git a/src/main/java/org/qortal/controller/arbitrary/ArbitraryDataManager.java b/src/main/java/org/qortal/controller/arbitrary/ArbitraryDataManager.java index 7fdd907a..20b4885a 100644 --- a/src/main/java/org/qortal/controller/arbitrary/ArbitraryDataManager.java +++ b/src/main/java/org/qortal/controller/arbitrary/ArbitraryDataManager.java @@ -338,7 +338,7 @@ public class ArbitraryDataManager extends Thread { ArbitraryDataResource resource = new ArbitraryDataResource(resourceId, ArbitraryDataFile.ResourceIdType.NAME, service, identifier); String key = resource.getUniqueKey(); - LOGGER.info("Clearing cache for {}...", resource); + LOGGER.trace("Clearing cache for {}...", resource); if (this.arbitraryDataCachedResources.containsKey(key)) { this.arbitraryDataCachedResources.remove(key); diff --git a/src/main/java/org/qortal/utils/FilesystemUtils.java b/src/main/java/org/qortal/utils/FilesystemUtils.java index 44648699..1b3de544 100644 --- a/src/main/java/org/qortal/utils/FilesystemUtils.java +++ b/src/main/java/org/qortal/utils/FilesystemUtils.java @@ -150,17 +150,24 @@ public class FilesystemUtils { } } - public static void safeDeleteDirectory(Path path, boolean cleanup) throws IOException { + public static boolean safeDeleteDirectory(Path path, boolean cleanup) throws IOException { + boolean success = false; + // Delete path, if it exists in our data/temp directory if (FilesystemUtils.pathInsideDataOrTempPath(path)) { - File directory = new File(path.toString()); - FileUtils.deleteDirectory(directory); + if (Files.exists(path)) { + File directory = new File(path.toString()); + FileUtils.deleteDirectory(directory); + success = true; + } } - if (cleanup) { + if (success && cleanup) { // Delete the parent directories if they are empty (and exist in our data/temp directory) FilesystemUtils.safeDeleteEmptyParentDirectories(path); } + + return success; } public static void safeDeleteEmptyParentDirectories(Path path) throws IOException {