From f129e16878aaad3970814511e41239dbccd53dbd Mon Sep 17 00:00:00 2001 From: CalDescent Date: Fri, 21 Jan 2022 14:32:15 +0000 Subject: [PATCH] Added retry mechanism to relay file deletions, just in case it fails on the first try. A longer term solution to this hypothetical problem is to store relays in RAM or a temp folder only. Or maybe add an indicator file to instruct the cleanup manager to delete it. But this will require more development. 10 deletion attempts (each 1 second apart) should be enough for now. --- .../arbitrary/ArbitraryDataFileManager.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/qortal/controller/arbitrary/ArbitraryDataFileManager.java b/src/main/java/org/qortal/controller/arbitrary/ArbitraryDataFileManager.java index 0f58a6b0..55907b43 100644 --- a/src/main/java/org/qortal/controller/arbitrary/ArbitraryDataFileManager.java +++ b/src/main/java/org/qortal/controller/arbitrary/ArbitraryDataFileManager.java @@ -206,7 +206,18 @@ public class ArbitraryDataFileManager { // File didn't exist locally before the request, and it's a forwarding request, so delete it LOGGER.debug("Deleting file {} because it was needed for forwarding only", Base58.encode(hash)); ArbitraryDataFile dataFile = arbitraryDataFileMessage.getArbitraryDataFile(); - dataFile.delete(); + + // Keep trying to delete the data until it is deleted, or we reach 10 attempts + for (int i=0; i<10; i++) { + if (dataFile.delete()) { + break; + } + try { + Thread.sleep(1000L); + } catch (InterruptedException e) { + // Fall through to exit method + } + } } }