From 11ca89b89ddbd0ece72c39ba6072145b92a7cbd4 Mon Sep 17 00:00:00 2001 From: Dominik Stadler Date: Sun, 26 Aug 2018 11:41:20 +0000 Subject: [PATCH] Ensure that file handles are closed for encrypted files git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1839197 13f79535-47bb-0310-9956-ffa450edef68 --- src/java/org/apache/poi/sl/usermodel/SlideShowFactory.java | 4 ++++ src/java/org/apache/poi/ss/usermodel/WorkbookFactory.java | 6 +++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/java/org/apache/poi/sl/usermodel/SlideShowFactory.java b/src/java/org/apache/poi/sl/usermodel/SlideShowFactory.java index 7f4ab04b29..e97a49eda7 100644 --- a/src/java/org/apache/poi/sl/usermodel/SlideShowFactory.java +++ b/src/java/org/apache/poi/sl/usermodel/SlideShowFactory.java @@ -110,6 +110,10 @@ public class SlideShowFactory { return createXSLFSlideShow(stream); } finally { IOUtils.closeQuietly(stream); + + // as we processed the full stream already, we can close the filesystem here + // otherwise file handles are leaked + root.getFileSystem().close(); } } diff --git a/src/java/org/apache/poi/ss/usermodel/WorkbookFactory.java b/src/java/org/apache/poi/ss/usermodel/WorkbookFactory.java index 7ac7967340..1386b8fbba 100644 --- a/src/java/org/apache/poi/ss/usermodel/WorkbookFactory.java +++ b/src/java/org/apache/poi/ss/usermodel/WorkbookFactory.java @@ -110,6 +110,10 @@ public class WorkbookFactory { return createXSSFWorkbook(stream); } finally { IOUtils.closeQuietly(stream); + + // as we processed the full stream already, we can close the filesystem here + // otherwise file handles are leaked + root.getFileSystem().close(); } } @@ -137,7 +141,7 @@ public class WorkbookFactory { *

Note that in order to properly release resources the * Workbook should be closed after use.

* - * @param pkg The {@link OPCPackage} opened for reading data. + * @param pkg The {@link org.apache.poi.openxml4j.opc.OPCPackage} opened for reading data. * * @return The created Workbook *