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 edcd6b9e717b33e4809fdc4ae390c08cc693c9d1..d5ebe72798381412e5d3855062768222840f26aa 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 294e3aa4e612706951daf42a4bbe3011b515e9fa..fbce42d118e1df3f79b64f9fd8101bede832e38b 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));