From 9f6640edafba7a899b592e3163d3888c5ac24efa Mon Sep 17 00:00:00 2001
From: brinn <brinn>
Date: Mon, 1 Oct 2007 06:31:07 +0000
Subject: [PATCH] change: - make DirectoryScanningTimerTask a IRecoverable - do
 not run recovery automatically in order to give better control

SVN: 1881
---
 .../common/utilities/DirectoryScanningTimerTask.java  | 11 ++++-------
 .../utilities/DirectoryScanningTimerTaskTest.java     |  3 +--
 2 files changed, 5 insertions(+), 9 deletions(-)

diff --git a/common/source/java/ch/systemsx/cisd/common/utilities/DirectoryScanningTimerTask.java b/common/source/java/ch/systemsx/cisd/common/utilities/DirectoryScanningTimerTask.java
index ff549bed204..0a933fbd936 100644
--- a/common/source/java/ch/systemsx/cisd/common/utilities/DirectoryScanningTimerTask.java
+++ b/common/source/java/ch/systemsx/cisd/common/utilities/DirectoryScanningTimerTask.java
@@ -42,7 +42,7 @@ import ch.systemsx.cisd.common.logging.LogFactory;
  * 
  * @author Bernd Rinn
  */
-public final class DirectoryScanningTimerTask extends TimerTask implements ISelfTestable
+public final class DirectoryScanningTimerTask extends TimerTask implements ISelfTestable, IRecoverable
 {
 
     public static final String FAULTY_PATH_FILENAME = ".faulty_paths";
@@ -91,8 +91,6 @@ public final class DirectoryScanningTimerTask extends TimerTask implements ISelf
 
     /**
      * Creates a <var>DirectoryScanningTimerTask</var>.
-     * <p>
-     * Performs a recovery if <var>recoverableOrNull</var> is not <code>null</code>.
      * 
      * @param sourceDirectory The directory to scan for entries.
      * @param filter The file filter that picks the entries to handle.
@@ -115,20 +113,19 @@ public final class DirectoryScanningTimerTask extends TimerTask implements ISelf
         this.faultyPaths = new HashSet<File>();
         this.faultyPathsFile = new File(sourceDirectory, FAULTY_PATH_FILENAME);
         faultyPathsFile.delete();
-        runRecover();
     }
 
     /**
      * Handles all entries in the source directory that are picked by the filter.
      */
     @Override
-    public void run()
+    public synchronized void run()
     {
         try
         {
             if (recoveryTriggerFile.exists())
             {
-                runRecover();
+                recover();
                 recoveryTriggerFile.delete();
             }
             if (operationLog.isTraceEnabled())
@@ -158,7 +155,7 @@ public final class DirectoryScanningTimerTask extends TimerTask implements ISelf
         }
     }
 
-    private void runRecover()
+    public synchronized void recover()
     {
         if (recoverableOrNull != null)
         {
diff --git a/common/sourceTest/java/ch/systemsx/cisd/common/utilities/DirectoryScanningTimerTaskTest.java b/common/sourceTest/java/ch/systemsx/cisd/common/utilities/DirectoryScanningTimerTaskTest.java
index 6ad180e49dd..e4126b4f995 100644
--- a/common/sourceTest/java/ch/systemsx/cisd/common/utilities/DirectoryScanningTimerTaskTest.java
+++ b/common/sourceTest/java/ch/systemsx/cisd/common/utilities/DirectoryScanningTimerTaskTest.java
@@ -208,8 +208,7 @@ public class DirectoryScanningTimerTaskTest
         final RecordingRecoverable mockRecoverable = new RecordingRecoverable();
         final DirectoryScanningTimerTask scanner =
                 new DirectoryScanningTimerTask(workingDirectory, ACCEPT_ALL_FILTER, mockPathHandler, mockRecoverable);
-        assertTrue(mockRecoverable.recoveryCalled);
-        mockRecoverable.recoveryCalled = false;
+        assertFalse(mockRecoverable.recoveryCalled);
         assertEquals(0, mockPathHandler.handledPaths.size());
         scanner.run();
         assertFalse(mockRecoverable.recoveryCalled);
-- 
GitLab