From 22ac1d34f00e6cd215a69a4922901fb9dd2ff4ad Mon Sep 17 00:00:00 2001
From: brinn <brinn>
Date: Sat, 3 Nov 2012 12:38:41 +0000
Subject: [PATCH] Do not throw a timeout exception when markerfile deletion
 stalls, but put it in the asynchronous queue.

SVN: 27474
---
 .../cisd/etlserver/DataSetRegistrationAlgorithm.java   | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/DataSetRegistrationAlgorithm.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/DataSetRegistrationAlgorithm.java
index 7c67e0873d1..9e91c50cc81 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/DataSetRegistrationAlgorithm.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/DataSetRegistrationAlgorithm.java
@@ -27,6 +27,7 @@ import org.apache.commons.lang.time.StopWatch;
 import org.apache.log4j.Logger;
 
 import ch.systemsx.cisd.base.exceptions.IOExceptionUnchecked;
+import ch.systemsx.cisd.base.exceptions.TimeoutExceptionUnchecked;
 import ch.systemsx.cisd.common.action.IDelegatedActionWithResult;
 import ch.systemsx.cisd.common.exceptions.EnvironmentFailureException;
 import ch.systemsx.cisd.common.exceptions.HighLevelException;
@@ -34,6 +35,7 @@ import ch.systemsx.cisd.common.exceptions.UserFailureException;
 import ch.systemsx.cisd.common.filesystem.FileConstants;
 import ch.systemsx.cisd.common.filesystem.FileUtilities;
 import ch.systemsx.cisd.common.filesystem.IFileOperations;
+import ch.systemsx.cisd.common.filesystem.QueueingPathRemoverService;
 import ch.systemsx.cisd.common.logging.LogCategory;
 import ch.systemsx.cisd.common.logging.LogFactory;
 import ch.systemsx.cisd.common.mail.IMailClient;
@@ -450,7 +452,13 @@ public class DataSetRegistrationAlgorithm
             state.transaction.commit();
         } finally
         {
-            getFileOperations().delete(markerFile);
+            try
+            {
+                getFileOperations().delete(markerFile);
+            } catch (TimeoutExceptionUnchecked ex)
+            {
+                QueueingPathRemoverService.removeRecursively(markerFile);
+            }
         }
     }
 
-- 
GitLab