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