Adding more robust file deletion 55/89055/3
authorefiacor <fiachra.corcoran@est.tech>
Wed, 26 Jun 2019 10:04:13 +0000 (10:04 +0000)
committerFiachra Corcoran <fiachra.corcoran@est.tech>
Wed, 26 Jun 2019 10:32:34 +0000 (10:32 +0000)
Change-Id: I39675f77c101e55f6a8eba18cabb5f282081d032
Issue-ID: DMAAP-1212
Signed-off-by: efiacor <fiachra.corcoran@est.tech>
datarouter-node/src/main/java/org/onap/dmaap/datarouter/node/DeliveryTask.java

index bbd1391..91bd716 100644 (file)
@@ -39,6 +39,7 @@ import java.io.OutputStream;
 import java.net.HttpURLConnection;
 import java.net.ProtocolException;
 import java.net.URL;
+import java.nio.file.Files;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.UUID;
@@ -355,13 +356,27 @@ public class DeliveryTask implements Runnable, Comparable<DeliveryTask> {
      * Remove meta and data files.
      */
     void clean() {
-        datafile.delete();
-        metafile.delete();
+        deleteWithRetry(datafile);
+        deleteWithRetry(metafile);
         eelfLogger.info(EelfMsgs.INVOKE, newInvocationId);
         eelfLogger.info(EelfMsgs.EXIT);
         hdrs = null;
     }
 
+    private void deleteWithRetry(File file) {
+        int maxTries = 3;
+        int tryCount = 1;
+        while (tryCount <= maxTries) {
+            try {
+                Files.deleteIfExists(file.toPath());
+                break;
+            } catch (IOException e) {
+                eelfLogger.error("IOException : Failed to delete file :" + file.getName() + " on attempt " + tryCount, e);
+            }
+            tryCount++;
+        }
+    }
+
     /**
      * Get the resume time for a delivery task.
      */