From 51aff4f8f29b1d82b7bb070c9da221c3dc4a32db Mon Sep 17 00:00:00 2001 From: felmer <felmer> Date: Thu, 2 Jun 2016 07:24:26 +0000 Subject: [PATCH] SSDM-3027: improve modification time for data set SVN: 36615 --- .../dss/generic/server/ftp/FtpFileFactory.java | 11 +++++++++-- .../TemplateBasedDataSetResourceResolver.java | 11 ++++++----- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/ftp/FtpFileFactory.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/ftp/FtpFileFactory.java index 0d4bec20d1b..86175907072 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/ftp/FtpFileFactory.java +++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/ftp/FtpFileFactory.java @@ -40,17 +40,24 @@ public class FtpFileFactory public static FtpFile createFtpFile(String dataSetCode, String path, IHierarchicalContentNode contentNode, IHierarchicalContent content, IHierarchicalContentNodeFilter childrenFilter, Cache cache) + { + return createFtpFile(dataSetCode, path, contentNode, content, childrenFilter, getLastModified(contentNode), cache); + + } + + public static FtpFile createFtpFile(String dataSetCode, String path, IHierarchicalContentNode contentNode, + IHierarchicalContent content, IHierarchicalContentNodeFilter childrenFilter, + long lastModified, Cache cache) { FtpFile file = cache.getFile(path); if (file == null) { file = new FtpFileImpl(dataSetCode, path, contentNode.getRelativePath(), - contentNode.isDirectory(), getSize(contentNode), getLastModified(contentNode), + contentNode.isDirectory(), getSize(contentNode), lastModified, content, childrenFilter, cache); cache.putFile(file, path); } return file; - } private static long getSize(IHierarchicalContentNode contentNode) 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 9e04d7cd1bf..6be6b321161 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 @@ -338,7 +338,7 @@ public class TemplateBasedDataSetResourceResolver implements IFtpPathResolver, if (contentNodeOrNull != null && fileFilter.accept(contentNodeOrNull)) { return FtpFileFactory.createFtpFile(dataSet.getCode(), path, contentNodeOrNull, - content, fileFilter, cache); + content, fileFilter, dataSet.getModificationDate().getTime(), cache); } else { return FtpPathResolverRegistry.getNonExistingFile(path, "Resource '" @@ -442,16 +442,17 @@ public class TemplateBasedDataSetResourceResolver implements IFtpPathResolver, Cache cache = context.getCache(); for (EvaluatedElement evalElement : evalResult.getEvalElements()) { - IHierarchicalContentNodeFilter fileFilter = getFileFilter(evalElement.dataSet); + AbstractExternalData dataSet = evalElement.dataSet; + IHierarchicalContentNodeFilter fileFilter = getFileFilter(dataSet); if (fileFilter.accept(evalElement.contentNode)) { String childPath = parentPath + FtpConstants.FILE_SEPARATOR + evalElement.evaluatedTemplate; - String dataSetCode = evalElement.dataSet.getCode(); - IHierarchicalContent content = evalResult.getHierarchicalContent(evalElement.dataSet); + String dataSetCode = dataSet.getCode(); + IHierarchicalContent content = evalResult.getHierarchicalContent(dataSet); FtpFile childFtpFile = FtpFileFactory.createFtpFile(dataSetCode, childPath, evalElement.contentNode, - content, fileFilter, cache); + content, fileFilter, dataSet.getModificationDate().getTime(), cache); result.add(childFtpFile); } } -- GitLab