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 *