From 1d91fc81aac7c6102b4c43193b18cb92ca6ba58c Mon Sep 17 00:00:00 2001
From: kaloyane <kaloyane>
Date: Wed, 11 May 2011 13:07:57 +0000
Subject: [PATCH] minor: defensive code against NPE

SVN: 21240
---
 .../resolver/TemplateBasedDataSetResourceResolver.java    | 8 +++++++-
 .../TemplateBasedDataSetResourceResolverTest.java         | 6 ++++--
 2 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/ftp/resolver/TemplateBasedDataSetResourceResolver.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/ftp/resolver/TemplateBasedDataSetResourceResolver.java
index edcd6b9e717..d5ebe727983 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/ftp/resolver/TemplateBasedDataSetResourceResolver.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/ftp/resolver/TemplateBasedDataSetResourceResolver.java
@@ -181,7 +181,13 @@ public class TemplateBasedDataSetResourceResolver implements IFtpPathResolver,
         String relativePath = evaluationResult.fileName;
         if (false == StringUtils.isBlank(nestedSubPath))
         {
-            relativePath += FtpConstants.FILE_SEPARATOR + nestedSubPath;
+            if (StringUtils.isBlank(relativePath))
+            {
+                relativePath = nestedSubPath;
+            } else
+            {
+                relativePath += FtpConstants.FILE_SEPARATOR + nestedSubPath;
+            }
         }
 
         IHierarchicalContentNodeFilter fileFilter = getFileFilter(evaluationResult.dataSet);
diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/server/ftp/resolver/TemplateBasedDataSetResourceResolverTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/server/ftp/resolver/TemplateBasedDataSetResourceResolverTest.java
index 294e3aa4e61..fbce42d118e 100644
--- a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/server/ftp/resolver/TemplateBasedDataSetResourceResolverTest.java
+++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/server/ftp/resolver/TemplateBasedDataSetResourceResolverTest.java
@@ -166,9 +166,11 @@ public class TemplateBasedDataSetResourceResolverTest extends AssertJUnit
         resolver = new TemplateBasedDataSetResourceResolver(config);
 
         final String dataSetCode = "dataSetCode";
-        final String subPath = "/level1/level2/fileName.txt";
+        final String subPath = "level1/level2/fileName.txt";
 
-        String path = EXP_ID + FtpConstants.FILE_SEPARATOR + dataSetCode + subPath;
+        String path =
+                EXP_ID + FtpConstants.FILE_SEPARATOR + dataSetCode + FtpConstants.FILE_SEPARATOR
+                        + subPath;
 
         List<ExternalData> dataSets = Arrays.asList(createDataSet(dataSetCode, DS_TYPE1));
 
-- 
GitLab