From c4f763960c68db698c80b1f3b2f5e8c4208f4dcd Mon Sep 17 00:00:00 2001 From: CalDescent Date: Sat, 29 Jan 2022 19:18:06 +0000 Subject: [PATCH] Don't delete a resource's cache if a build is in progress. Hopeful fix for "Unable to delete cache for resource: Unable to delete directory" error, and possibly some other file conflicts. --- .../java/org/qortal/arbitrary/ArbitraryDataResource.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/main/java/org/qortal/arbitrary/ArbitraryDataResource.java b/src/main/java/org/qortal/arbitrary/ArbitraryDataResource.java index 0ece14a5..7e00e0d0 100644 --- a/src/main/java/org/qortal/arbitrary/ArbitraryDataResource.java +++ b/src/main/java/org/qortal/arbitrary/ArbitraryDataResource.java @@ -128,6 +128,13 @@ public class ArbitraryDataResource { } public void deleteCache() throws IOException { + // Don't delete anything if there's a build in progress + ArbitraryDataBuildQueueItem queueItem = + new ArbitraryDataBuildQueueItem(resourceId, resourceIdType, service, identifier); + if (ArbitraryDataBuildManager.getInstance().isInBuildQueue(queueItem)) { + return; + } + String baseDir = Settings.getInstance().getTempDataPath(); String identifier = this.identifier != null ? this.identifier : "default"; Path cachePath = Paths.get(baseDir, "reader", this.resourceIdType.toString(), this.resourceId, this.service.toString(), identifier);