From 8f6f1f3abae615a22068d1a240354a8c8503e586 Mon Sep 17 00:00:00 2001 From: kaloyane <kaloyane> Date: Tue, 31 May 2011 07:18:43 +0000 Subject: [PATCH] minor FIXME resolved: HierarchicalContent is also closed when an I/O error occurs SVN: 21515 --- .../server/ftp/resolver/FtpFileImpl.java | 21 ++++++++++++------- 1 file changed, 13 insertions(+), 8 deletions(-) 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 bd7238a10ef..f803f3cd866 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() -- GitLab