From facb4a7d537c9822ada69f666e2c69c8a370e358 Mon Sep 17 00:00:00 2001
From: brinn <brinn>
Date: Wed, 5 Sep 2012 13:12:45 +0000
Subject: [PATCH] Fix copier not to call hostAwareFile.getLocalFile() if we
 work on a remote file.

SVN: 26519
---
 .../dss/generic/server/plugins/standard/Copier.java | 13 ++++++-------
 1 file changed, 6 insertions(+), 7 deletions(-)

diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/Copier.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/Copier.java
index 1e7e34b81f2..f94a751209a 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/Copier.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/Copier.java
@@ -119,10 +119,10 @@ public class Copier implements Serializable, IPostRegistrationDatasetHandler
             FileUtilities.checkPathCopier(copier, host, null, rsyncModule, rsyncPasswordFile,
                     DataSetCopier.SSH_TIMEOUT_MILLIS);
         }
-        File destination = hostAwareFile.getLocalFile();
-        File destinationFile = new File(destination, originalData.getName());
-        String dataSetCode = dataSetInformation.getDataSetCode();
-        File finalDestinationFile = new File(destination, renameToDataSetCode ? dataSetCode : originalData.getName());
+        final String destination = hostAwareFile.getPath();
+        final File destinationFile = new File(destination, originalData.getName());
+        final String dataSetCode = dataSetInformation.getDataSetCode();
+        final File finalDestinationFile = new File(destination, renameToDataSetCode ? dataSetCode : originalData.getName());
         BooleanStatus destinationExists =
                 checkDestinationFileExistence(finalDestinationFile, host, sshCommandExecutor);
 
@@ -144,13 +144,12 @@ public class Copier implements Serializable, IPostRegistrationDatasetHandler
             IImmutableCopier hardLinkMaker = immutableCopierFactory.create(rsyncExecutable,
             lnExecutable);
             status =
-                    hardLinkMaker.copyImmutably(originalData, destination,
+                    hardLinkMaker.copyImmutably(originalData, new File(destination),
                             renameToDataSetCode ? dataSetCode : null);
         } else
         {
-            final String destinationRemotePath = hostAwareFile.getPath();
             status =
-                    copier.copyToRemote(originalData, destinationRemotePath, host, rsyncModule,
+                    copier.copyToRemote(originalData, destination, host, rsyncModule,
                             rsyncPasswordFile);
         }
         if (status.isError())
-- 
GitLab