From 15b8d8f71d2521c3d2ce3c06612c8c8d3f79b3ec Mon Sep 17 00:00:00 2001
From: tpylak <tpylak>
Date: Tue, 21 Aug 2007 12:07:14 +0000
Subject: [PATCH] DMV bugfix - when incoming dir is local, there is no mark
 file (.is_finished), so we should not try to delete it

SVN: 1439
---
 .../cisd/datamover/MonitorStarter.java        | 20 +++++++++++++------
 1 file changed, 14 insertions(+), 6 deletions(-)

diff --git a/datamover/source/java/ch/systemsx/cisd/datamover/MonitorStarter.java b/datamover/source/java/ch/systemsx/cisd/datamover/MonitorStarter.java
index 739aec3c49b..530b1781e80 100644
--- a/datamover/source/java/ch/systemsx/cisd/datamover/MonitorStarter.java
+++ b/datamover/source/java/ch/systemsx/cisd/datamover/MonitorStarter.java
@@ -87,8 +87,8 @@ public class MonitorStarter
                         manualInterventionFilter, cleansingFilter);
 
         final DirectoryScanningTimerTask movingTask =
-                new DirectoryScanningTimerTask(incomingStore.getPath(), new QuietPeriodFileFilter(parameters,
-                        factory), pathHandler);
+                new DirectoryScanningTimerTask(incomingStore.getPath(), new QuietPeriodFileFilter(parameters, factory),
+                        pathHandler);
         final Timer movingTimer = new Timer("Mover of Incomming Data");
         schedule(movingTimer, movingTask, 0, parameters.getCheckIntervalMillis(), parameters.getTreatIncomingAsRemote());
     }
@@ -98,14 +98,16 @@ public class MonitorStarter
     {
         IPathHandler processMoved =
                 createProcessMovedFile(readyToMoveDir, tempDir, parameters.tryGetExtraCopyStore(), factory);
-        IPathHandler moveAndProcess = createMoveAndProcess(sourceHost, processMoved);
+        IPathHandler moveAndProcess =
+                createMoveAndProcess(sourceHost, processMoved, parameters.getTreatIncomingAsRemote());
         IPathHandler manualInterventionMover = createPathMoverToLocal(sourceHost, manualInterventionDir);
         CleansingPathHandlerDecorator cleansingOrMover =
                 new CleansingPathHandlerDecorator(cleansingFilter, moveAndProcess);
         return new GatePathHandlerDecorator(manualInterventionFilter, cleansingOrMover, manualInterventionMover);
     }
 
-    private IPathHandler createMoveAndProcess(String sourceHost, final IPathHandler processMoved)
+    private IPathHandler createMoveAndProcess(String sourceHost, final IPathHandler processMoved,
+            final boolean isIncomingRemote)
     {
         final IPathHandler moveFromIncoming = createPathMoverToLocal(sourceHost, inProgressDir);
         IPathHandler moveAndProcess = new IPathHandler()
@@ -119,9 +121,15 @@ public class MonitorStarter
                         File movedFile = new File(inProgressDir, path.getName());
                         File markFile = new File(inProgressDir, Constants.IS_FINISHED_PREFIX + path.getName());
                         assert movedFile.exists();
-                        assert markFile.exists();
-                        markFile.delete(); // process even if mark file could not be deleted
+                        if (isIncomingRemote)
+                        {
+                            assert markFile.exists();
+                        }
                         ok = processMoved.handle(movedFile);
+                        if (isIncomingRemote)
+                        {
+                            markFile.delete(); // process even if mark file could not be deleted
+                        }
                     }
                     return ok;
                 }
-- 
GitLab