From 212d24a61a6b24cc35b3b147fdddd562446b8d5c Mon Sep 17 00:00:00 2001 From: anttil <anttil> Date: Wed, 21 Nov 2012 09:26:42 +0000 Subject: [PATCH] BIS-228 / SP-368: Bugfix: Problems with FTP paths without pathinfo db SVN: 27729 --- .../openbis/dss/generic/server/ftp/FtpFileFactory.java | 8 +------- .../shared/content/RemoteHierarchicalContent.java | 10 +++++----- .../shared/content/RemoteHierarchicalContentNode.java | 10 +++++++++- 3 files changed, 15 insertions(+), 13 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 94bae15ea0f..f72dcc866c0 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 @@ -16,8 +16,6 @@ package ch.systemsx.cisd.openbis.dss.generic.server.ftp; -import java.io.File; - import org.apache.ftpserver.ftplet.FtpFile; import ch.systemsx.cisd.openbis.common.io.hierarchical_content.IHierarchicalContentNodeFilter; @@ -66,11 +64,7 @@ public class FtpFileFactory { try { - File file = contentNode.getFile(); - if (file != null) - { - return file.lastModified(); - } + return contentNode.getLastModified(); } catch (UnsupportedOperationException uoe) { // ignore diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/content/RemoteHierarchicalContent.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/content/RemoteHierarchicalContent.java index f4b2ebfb55c..f1933561d84 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/content/RemoteHierarchicalContent.java +++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/content/RemoteHierarchicalContent.java @@ -72,11 +72,11 @@ public class RemoteHierarchicalContent implements IHierarchicalContent if (info == null) { - FileInfoDssDTO[] files = - getRemoteDss().listFilesForDataSet(sessionHolder.getSessionToken(), - location.getLocation().getDataSetCode(), "", false); - - info = convert(files[0]); + info = new DataSetPathInfo(); + info.setDirectory(true); + info.setRelativePath(""); + info.setParent(null); + info.setFileName(""); } return createNode(info); diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/content/RemoteHierarchicalContentNode.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/content/RemoteHierarchicalContentNode.java index 7156f93a212..16e1bc8cb9a 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/content/RemoteHierarchicalContentNode.java +++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/content/RemoteHierarchicalContentNode.java @@ -23,6 +23,7 @@ import java.io.InputStream; import java.net.MalformedURLException; import java.net.URL; import java.util.ArrayList; +import java.util.Date; import java.util.List; import ch.systemsx.cisd.base.exceptions.CheckedExceptionTunnel; @@ -132,7 +133,13 @@ public class RemoteHierarchicalContentNode implements IHierarchicalContentNode @Override public long getLastModified() { - return path.getLastModified().getTime(); + if (path.getLastModified() != null) + { + return path.getLastModified().getTime(); + } else + { + return 0; + } } @Override @@ -179,6 +186,7 @@ public class RemoteHierarchicalContentNode implements IHierarchicalContentNode info.setFileName(file.getPathInDataSet()); info.setRelativePath(file.getPathInDataSet()); info.setSizeInBytes(file.getFileSize()); + info.setLastModified(new Date(0L)); children.add(new RemoteHierarchicalContentNode(dataSetCode, info, provider, localDss, remoteDss, sessionHolder, sessionWorkspaceRoot, path.getRelativePath())); -- GitLab