diff --git a/datamover/source/java/ch/systemsx/cisd/datamover/filesystem/remote/RemotePathMover.java b/datamover/source/java/ch/systemsx/cisd/datamover/filesystem/remote/RemotePathMover.java
index f19d3a64e76409e477517bc89fb01fcbd6204a00..0e933e7ca2ef27eb11e5cd74405926c09a166962 100644
--- a/datamover/source/java/ch/systemsx/cisd/datamover/filesystem/remote/RemotePathMover.java
+++ b/datamover/source/java/ch/systemsx/cisd/datamover/filesystem/remote/RemotePathMover.java
@@ -16,8 +16,10 @@
 
 package ch.systemsx.cisd.datamover.filesystem.remote;
 
+import org.apache.commons.lang.StringUtils;
 import org.apache.log4j.Logger;
 
+import ch.systemsx.cisd.common.exceptions.ConfigurationFailureException;
 import ch.systemsx.cisd.common.exceptions.Status;
 import ch.systemsx.cisd.common.exceptions.StatusFlag;
 import ch.systemsx.cisd.common.logging.LogCategory;
@@ -86,19 +88,24 @@ public final class RemotePathMover implements IStoreHandler
      * @param destinationDirectory The directory to move paths to.
      * @param copier Copies items from source to destination
      * @param monitor The activity monitor to inform about actions.
-     * @param timingParameters The timing parametes used for monitoring and reporting stall situations.
+     * @param timingParameters The timing parameters used for monitoring and reporting stall situations.
+     * 
+     * @throws ConfigurationFailureException If the destination directory is not fully accessible.
      */
     public RemotePathMover(IFileStore sourceDirectory, IFileStore destinationDirectory, IStoreCopier copier,
-            CopyActivityMonitor monitor, ITimingParameters timingParameters)
+            CopyActivityMonitor monitor, ITimingParameters timingParameters) throws ConfigurationFailureException
     {
         assert sourceDirectory != null;
         assert destinationDirectory != null;
         assert monitor != null;
         assert timingParameters != null;
-        String errorMsg;
-        assert (errorMsg = destinationDirectory.tryCheckDirectoryFullyAccessible(TIMEOUT_DESTINATION_MILLIS)) == null : errorMsg;
         assert sourceDirectory.tryAsExtended() != null || destinationDirectory.tryAsExtended() != null;
 
+        final String errorMsg = destinationDirectory.tryCheckDirectoryFullyAccessible(TIMEOUT_DESTINATION_MILLIS);
+        if (StringUtils.isNotBlank(errorMsg))
+        {
+            throw new ConfigurationFailureException(errorMsg);
+        }
         this.sourceDirectory = sourceDirectory;
         this.destinationDirectory = destinationDirectory;
         this.copier = copier;
diff --git a/datamover/source/java/ch/systemsx/cisd/datamover/filesystem/remote/rsync/RsyncVersionChecker.java b/datamover/source/java/ch/systemsx/cisd/datamover/filesystem/remote/rsync/RsyncVersionChecker.java
index d1061379a7b3dc2fb32951c39acfa98d9fccac1d..ea829269ab0e01ed2ab3840951c6d3c2590083eb 100644
--- a/datamover/source/java/ch/systemsx/cisd/datamover/filesystem/remote/rsync/RsyncVersionChecker.java
+++ b/datamover/source/java/ch/systemsx/cisd/datamover/filesystem/remote/rsync/RsyncVersionChecker.java
@@ -194,10 +194,10 @@ final class RsyncVersionChecker
 
     private static String tryGetRsyncVersion(String rsyncExecutableToCheck)
     {
-        final long TIME_TO_WAIT_FOR_COMPLETION = 2 * 1000;
+        final long timeToWaitForCompletion = 2 * 1000;
         final ProcessResult result =
                 ProcessExecutionHelper.run(Arrays.asList(rsyncExecutableToCheck, "--version"),
-                        TIME_TO_WAIT_FOR_COMPLETION, operationLog, machineLog);
+                        timeToWaitForCompletion, operationLog, machineLog);
         result.log();
         final List<String> processOutput = result.getProcessOutput();
         if (processOutput.size() == 0)
diff --git a/datamover/sourceTest/java/ch/systemsx/cisd/datamover/MainTest.java b/datamover/sourceTest/java/ch/systemsx/cisd/datamover/MainTest.java
index 94af24ad76299fda7c160719194ee0ca58a3efa4..c84356861fe99331624b90efab00a242d8a00ba9 100644
--- a/datamover/sourceTest/java/ch/systemsx/cisd/datamover/MainTest.java
+++ b/datamover/sourceTest/java/ch/systemsx/cisd/datamover/MainTest.java
@@ -99,15 +99,15 @@ public class MainTest
 
         private static final String MANUAL_INTERV_DIR = "manual-intervention";
 
-        public File incoming;
+        private final File incoming;
 
-        public File outgoing;
+        private final File outgoing;
 
-        public File buffer;
+        private final File buffer;
 
-        public File extraCopy;
+        private final File extraCopy;
 
-        public File manualIntervDir;
+        private final File manualIntervDir;
 
         public ExternalDirs(File workingDirectory) throws IOException
         {
diff --git a/datamover/sourceTest/java/ch/systemsx/cisd/datamover/ParametersTest.java b/datamover/sourceTest/java/ch/systemsx/cisd/datamover/ParametersTest.java
index 04c9aa920e71b404ecc7262894d40442a680e996..20f46e2559494be0f40fe3acc64995fe31ef5786 100644
--- a/datamover/sourceTest/java/ch/systemsx/cisd/datamover/ParametersTest.java
+++ b/datamover/sourceTest/java/ch/systemsx/cisd/datamover/ParametersTest.java
@@ -49,69 +49,69 @@ public class ParametersTest
     @BeforeClass
     public void init()
     {
-        SystemExit.throwException = true;
+        SystemExit.setThrowException(true);
     }
 
     @AfterClass
     public void finish()
     {
-        SystemExit.throwException = false;
+        SystemExit.setThrowException(false);
 
     }
 
     @Test
     public void testSetRsyncExecutableLong() throws Exception
     {
-        final String RSYNC_EXEC = "/usr/local/bin/rsync";
-        final Parameters parameters = parse("--rsync-executable", RSYNC_EXEC);
-        assertEquals(RSYNC_EXEC, parameters.getRsyncExecutable());
+        final String rsyncExec = "/usr/local/bin/rsync";
+        final Parameters parameters = parse("--rsync-executable", rsyncExec);
+        assertEquals(rsyncExec, parameters.getRsyncExecutable());
     }
 
     @Test
     public void testSetSshExecutableLong() throws Exception
     {
-        final String SSH_EXEC = "/usr/local/bin/ssh";
-        final Parameters parameters = parse("--ssh-executable", SSH_EXEC);
-        assertEquals(SSH_EXEC, parameters.getSshExecutable());
+        final String sshExec = "/usr/local/bin/ssh";
+        final Parameters parameters = parse("--ssh-executable", sshExec);
+        assertEquals(sshExec, parameters.getSshExecutable());
     }
 
     @Test
     public void testSetLnExecutableLong() throws Exception
     {
-        final String EXEC = "/usr/local/bin/ln";
-        final Parameters parameters = parse("--hard-link-executable", EXEC);
-        assertEquals(EXEC, parameters.getHardLinkExecutable());
+        final String exec = "/usr/local/bin/ln";
+        final Parameters parameters = parse("--hard-link-executable", exec);
+        assertEquals(exec, parameters.getHardLinkExecutable());
     }
 
     @Test
     public void testSetCleansingRegexLong() throws Exception
     {
-        final String CLEANSING_REGEX = "[0-9]+";
-        final Parameters parameters = parse("--cleansing-regex", CLEANSING_REGEX);
-        assertEquals(CLEANSING_REGEX, parameters.tryGetCleansingRegex().pattern());
+        final String cleansingRegex = "[0-9]+";
+        final Parameters parameters = parse("--cleansing-regex", cleansingRegex);
+        assertEquals(cleansingRegex, parameters.tryGetCleansingRegex().pattern());
     }
 
     @Test(expectedExceptions = RuntimeException.class)
     public void testSetInvalidCleansingRegex() throws Exception
     {
-        final String CLEANSING_REGEX = "[0-9}+";
-        parse("--cleansing-regex", CLEANSING_REGEX);
+        final String cleansingRegex = "[0-9}+";
+        parse("--cleansing-regex", cleansingRegex);
     }
 
     @Test
     public void testSetLocalDataDirLong() throws Exception
     {
-        final String LOCAL_DATADIR = ".." + File.separator + "test_it_data";
-        final Parameters parameters = parse("--incoming-dir", LOCAL_DATADIR);
-        assertEquals(createIncomingStore(LOCAL_DATADIR, null, parameters), getIncomingStore(parameters));
+        final String localDataDir = ".." + File.separator + "test_it_data";
+        final Parameters parameters = parse("--incoming-dir", localDataDir);
+        assertEquals(createIncomingStore(localDataDir, null, parameters), getIncomingStore(parameters));
     }
 
     @Test
     public void testSetLocalTempDirLong() throws Exception
     {
-        final String LOCAL_TEMPDIR = "test_it_tmp";
-        final Parameters parameters = parse("--buffer-dir", LOCAL_TEMPDIR);
-        assertEquals(LOCAL_TEMPDIR, parameters.getBufferDirectoryPath().getPath());
+        final String localTempDir = "test_it_tmp";
+        final Parameters parameters = parse("--buffer-dir", localTempDir);
+        assertEquals(localTempDir, parameters.getBufferDirectoryPath().getPath());
     }
 
     @Test
@@ -160,9 +160,9 @@ public class ParametersTest
     @Test
     public void testSetCheckIntervalLong() throws Exception
     {
-        final int CHECK_INTERVAL = 5;
-        final Parameters parameters = parse("--check-interval", Integer.toString(CHECK_INTERVAL));
-        assertEquals(1000 * CHECK_INTERVAL, parameters.getCheckIntervalMillis());
+        final int checkInterval = 5;
+        final Parameters parameters = parse("--check-interval", Integer.toString(checkInterval));
+        assertEquals(1000 * checkInterval, parameters.getCheckIntervalMillis());
     }
 
     @Test(expectedExceptions = RuntimeException.class)
@@ -174,17 +174,17 @@ public class ParametersTest
     @Test
     public void testSetCheckIntervalShort() throws Exception
     {
-        final int CHECK_INTERVAL = 11;
-        final Parameters parameters = parse("-c", Integer.toString(CHECK_INTERVAL));
-        assertEquals(1000 * CHECK_INTERVAL, parameters.getCheckIntervalMillis());
+        final int checkInterval = 11;
+        final Parameters parameters = parse("-c", Integer.toString(checkInterval));
+        assertEquals(1000 * checkInterval, parameters.getCheckIntervalMillis());
     }
 
     @Test
     public void testSetCheckIntervalInternalLong() throws Exception
     {
-        final int CHECK_INTERVAL = 1;
-        final Parameters parameters = parse("--check-interval-internal", Integer.toString(CHECK_INTERVAL));
-        assertEquals(1000 * CHECK_INTERVAL, parameters.getCheckIntervalInternalMillis());
+        final int checkInterval = 1;
+        final Parameters parameters = parse("--check-interval-internal", Integer.toString(checkInterval));
+        assertEquals(1000 * checkInterval, parameters.getCheckIntervalInternalMillis());
     }
 
     @Test
@@ -197,17 +197,17 @@ public class ParametersTest
     @Test
     public void testSetQuietPeriodLong() throws Exception
     {
-        final int QUIET_PERIOD = 6;
-        final Parameters parameters = parse("--quiet-period", Integer.toString(QUIET_PERIOD));
-        assertEquals(1000 * QUIET_PERIOD, parameters.getQuietPeriodMillis());
+        final int quietPeriod = 6;
+        final Parameters parameters = parse("--quiet-period", Integer.toString(quietPeriod));
+        assertEquals(1000 * quietPeriod, parameters.getQuietPeriodMillis());
     }
 
     @Test
     public void testSetQuietPeriodShort() throws Exception
     {
-        final int QUIET_PERIOD = 17;
-        final Parameters parameters = parse("-q", Integer.toString(QUIET_PERIOD));
-        assertEquals(1000 * QUIET_PERIOD, parameters.getQuietPeriodMillis());
+        final int quietPeriod = 17;
+        final Parameters parameters = parse("-q", Integer.toString(quietPeriod));
+        assertEquals(1000 * quietPeriod, parameters.getQuietPeriodMillis());
     }
 
     @Test
@@ -227,45 +227,45 @@ public class ParametersTest
     @Test
     public void testSetMandatoryOptions() throws Exception
     {
-        final String LOCAL_DATADIR = ".." + File.separator + "ldata";
-        final String LOCAL_TEMPDIR = "l" + File.separator + "tmp";
-        final String REMOTE_DATADIR = "rrr";
+        final String localDataDir = ".." + File.separator + "ldata";
+        final String localTempDir = "l" + File.separator + "tmp";
+        final String remoteDataDir = "rrr";
         final Parameters parameters =
-                parse("--incoming-dir", LOCAL_DATADIR, "--buffer-dir", LOCAL_TEMPDIR, "--outgoing-dir", REMOTE_DATADIR);
-        assertEquals(createIncomingStore(LOCAL_DATADIR, null, parameters), getIncomingStore(parameters));
-        assertEquals(LOCAL_TEMPDIR, parameters.getBufferDirectoryPath().getPath());
-        assertEquals(createOutgoingStore(REMOTE_DATADIR, null, parameters), getOutgoingStore(parameters));
+                parse("--incoming-dir", localDataDir, "--buffer-dir", localTempDir, "--outgoing-dir", remoteDataDir);
+        assertEquals(createIncomingStore(localDataDir, null, parameters), getIncomingStore(parameters));
+        assertEquals(localTempDir, parameters.getBufferDirectoryPath().getPath());
+        assertEquals(createOutgoingStore(remoteDataDir, null, parameters), getOutgoingStore(parameters));
     }
 
     @Test
     public void testSetEverything() throws Exception
     {
-        final String LOCAL_DATADIR = ".." + File.separator + "ldata";
-        final String LOCAL_TEMPDIR = "l" + File.separator + "tmp";
-        final String REMOTE_DATADIR = "rrr";
-        final String REMOTE_HOST = "myremotehost";
-        final int CHECK_INTERVAL = 22;
-        final int QUIET_PERIOD = 33;
-        final String REMOTE_INCOMING_HOST = "my-remote-incoming-host";
-        final String EXTRA_COPY_DIR = "xxx";
+        final String localDataDir = ".." + File.separator + "ldata";
+        final String localTempDir = "l" + File.separator + "tmp";
+        final String remoteDataDir = "rrr";
+        final String remoteHost = "myremotehost";
+        final int checkIntervall = 22;
+        final int quietPeriod = 33;
+        final String remoteIncomingHost = "my-remote-incoming-host";
+        final String extraCopyDir = "xxx";
 
         final Parameters parameters =
-                parse("--incoming-dir", LOCAL_DATADIR, "--buffer-dir", LOCAL_TEMPDIR, "--outgoing-dir", REMOTE_DATADIR,
-                        "--outgoing-host", REMOTE_HOST, "--check-interval", Integer.toString(CHECK_INTERVAL),
-                        "--quiet-period", Integer.toString(QUIET_PERIOD), "--treat-incoming-as-remote",
-                        "--incoming-host", REMOTE_INCOMING_HOST, "--extra-copy-dir", EXTRA_COPY_DIR,
+                parse("--incoming-dir", localDataDir, "--buffer-dir", localTempDir, "--outgoing-dir", remoteDataDir,
+                        "--outgoing-host", remoteHost, "--check-interval", Integer.toString(checkIntervall),
+                        "--quiet-period", Integer.toString(quietPeriod), "--treat-incoming-as-remote",
+                        "--incoming-host", remoteIncomingHost, "--extra-copy-dir", extraCopyDir,
                         "--rsync-overwrite");
-        IFileStore incomingStoreExpected = createIncomingStore(LOCAL_DATADIR, REMOTE_INCOMING_HOST, parameters);
+        IFileStore incomingStoreExpected = createIncomingStore(localDataDir, remoteIncomingHost, parameters);
         IFileStore incomingStore = getIncomingStore(parameters);
-        IFileStore outgoingStoreExpected = createOutgoingStore(REMOTE_DATADIR, REMOTE_HOST, parameters);
+        IFileStore outgoingStoreExpected = createOutgoingStore(remoteDataDir, remoteHost, parameters);
         IFileStore outgoingStore = getOutgoingStore(parameters);
 
         assertEquals(incomingStoreExpected, incomingStore);
-        assertEquals(LOCAL_TEMPDIR, parameters.getBufferDirectoryPath().getPath());
+        assertEquals(localTempDir, parameters.getBufferDirectoryPath().getPath());
         assertEquals(outgoingStoreExpected, outgoingStore);
-        assertEquals(EXTRA_COPY_DIR, parameters.tryGetExtraCopyDir().getPath());
-        assertEquals(1000 * CHECK_INTERVAL, parameters.getCheckIntervalMillis());
-        assertEquals(1000 * QUIET_PERIOD, parameters.getQuietPeriodMillis());
+        assertEquals(extraCopyDir, parameters.tryGetExtraCopyDir().getPath());
+        assertEquals(1000 * checkIntervall, parameters.getCheckIntervalMillis());
+        assertEquals(1000 * quietPeriod, parameters.getQuietPeriodMillis());
         assertTrue(incomingStore.isRemote());
         assertTrue(parameters.isRsyncOverwrite());
     }
diff --git a/datamover/sourceTest/java/ch/systemsx/cisd/datamover/filesystem/remote/rsync/RsyncCopierTest.java b/datamover/sourceTest/java/ch/systemsx/cisd/datamover/filesystem/remote/rsync/RsyncCopierTest.java
index baf6e9ef09f66724896d9f4ef742acc25a9622a8..07a7b5589b9962b8ced91226e05ca95a29c9bcd5 100644
--- a/datamover/sourceTest/java/ch/systemsx/cisd/datamover/filesystem/remote/rsync/RsyncCopierTest.java
+++ b/datamover/sourceTest/java/ch/systemsx/cisd/datamover/filesystem/remote/rsync/RsyncCopierTest.java
@@ -184,21 +184,21 @@ public class RsyncCopierTest
             {
                 public void run()
                 {
-                    final long SLEEP_MILLIS = 20;
-                    final int MAX_COUNT = 50;
-                    boolean OK = false;
+                    final long sleepMillis = 20;
+                    final int maxCount = 50;
+                    boolean ok = false;
                     int count = 0;
-                    while (OK == false && count < MAX_COUNT)
+                    while (ok == false && count < maxCount)
                     {
                         ++count;
                         try
                         {
-                            Thread.sleep(SLEEP_MILLIS);
+                            Thread.sleep(sleepMillis);
                         } catch (InterruptedException e)
                         {
                             // Can't happen.
                         }
-                        OK = copier.terminate();
+                        ok = copier.terminate();
                     }
                 }
             })).start();