diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/ftp/resolver/FtpFileImpl.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/ftp/resolver/FtpFileImpl.java index bd7238a10ef3cca49e8c27d6eedd7ad9d3c07887..f803f3cd866f9e5e006c098714c9d8a0411d5ff0 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/ftp/resolver/FtpFileImpl.java +++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/ftp/resolver/FtpFileImpl.java @@ -68,17 +68,22 @@ public class FtpFileImpl extends AbstractFtpFile public InputStream createInputStream(long offset) throws IOException { IHierarchicalContent content = createHierarchicalContent(); - IHierarchicalContentNode contentNode = getContentNodeForThisFile(content); - - InputStream result = - HierarchicalContentUtils.getInputStreamAutoClosingContent(contentNode, content); + try + { + IHierarchicalContentNode contentNode = getContentNodeForThisFile(content); + InputStream result = + HierarchicalContentUtils.getInputStreamAutoClosingContent(contentNode, content); - if (offset > 0) + if (offset > 0) + { + result.skip(offset); + } + return result; + } catch (IOException ioex) { - result.skip(offset); + content.close(); + return null; } - return result; - // FIXME content is not closed if exception occurs } public long getLastModified()