From c3a3121419e5a27a5829db115afe0ca8e23b9cfa Mon Sep 17 00:00:00 2001 From: felmer <felmer> Date: Mon, 20 Mar 2017 11:19:07 +0000 Subject: [PATCH] SSDM-4843: RsyncCopierFactory: handle null argument. RsyncArchiveCopierFactory: fixing bug in case of non-null argument. SVN: 37922 --- .../plugins/standard/RsyncArchiveCopierFactory.java | 4 +++- .../server/plugins/standard/RsyncCopierFactory.java | 11 +++++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/RsyncArchiveCopierFactory.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/RsyncArchiveCopierFactory.java index 8a76f64c9d4..248e6dea508 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/RsyncArchiveCopierFactory.java +++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/RsyncArchiveCopierFactory.java @@ -18,6 +18,7 @@ package ch.systemsx.cisd.openbis.dss.generic.server.plugins.standard; import java.io.File; import java.io.Serializable; +import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -43,7 +44,8 @@ public final class RsyncArchiveCopierFactory implements Serializable, IPathCopie @Override public IPathCopier create(File rsyncExecutable, File sshExecutableOrNull, long timeoutInMillis, List<String> additionalCmdLineFlagsOrNull) { - List<String> additionalCmdLineFlags = Arrays.asList("--archive", "--delete", "--inplace", "--checksum", getTimeoutParameter(timeoutInMillis)); + List<String> additionalCmdLineFlags = new ArrayList<>( + Arrays.asList("--archive", "--delete", "--inplace", "--checksum", getTimeoutParameter(timeoutInMillis))); if (additionalCmdLineFlagsOrNull != null) { additionalCmdLineFlags.addAll(additionalCmdLineFlagsOrNull); diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/RsyncCopierFactory.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/RsyncCopierFactory.java index ce99c65af6e..866eedefa26 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/RsyncCopierFactory.java +++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/RsyncCopierFactory.java @@ -28,8 +28,15 @@ public final class RsyncCopierFactory implements Serializable, IPathCopierFactor private static final long serialVersionUID = 1L; @Override - public IPathCopier create(File rsyncExecutable, File sshExecutableOrNull, long timeoutInMillis, List<String> additionalCmdLineFlagsOrNull) + public IPathCopier create(File rsyncExecutable, File sshExecutableOrNull, long timeoutInMillis, + List<String> additionalCmdLineFlagsOrNull) { - return new RsyncCopier(rsyncExecutable, sshExecutableOrNull, false, false, additionalCmdLineFlagsOrNull.toArray(new String[0])); + String[] additionalCmdLineFlags = new String[0]; + if (additionalCmdLineFlagsOrNull != null) + { + additionalCmdLineFlags = additionalCmdLineFlagsOrNull.toArray(new String[0]); + } + return new RsyncCopier(rsyncExecutable, sshExecutableOrNull, false, false, + additionalCmdLineFlags); } } \ No newline at end of file -- GitLab