From 2996f82e98408209e51f65ab114483f4c9ea69ef Mon Sep 17 00:00:00 2001 From: PJ Fanning Date: Tue, 28 Dec 2021 02:48:28 +0000 Subject: [PATCH] close input streams for parts git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1896464 13f79535-47bb-0310-9956-ffa450edef68 --- .../apache/poi/poifs/crypt/dsig/OOXMLURIDereferencer.java | 4 +++- .../org/apache/poi/xssf/binary/XSSFBSharedStringsTable.java | 5 +++-- .../poi/xssf/eventusermodel/ReadOnlySharedStringsTable.java | 4 +++- .../java/org/apache/poi/xssf/eventusermodel/XSSFBReader.java | 4 +++- 4 files changed, 12 insertions(+), 5 deletions(-) diff --git a/poi-ooxml/src/main/java/org/apache/poi/poifs/crypt/dsig/OOXMLURIDereferencer.java b/poi-ooxml/src/main/java/org/apache/poi/poifs/crypt/dsig/OOXMLURIDereferencer.java index d01724a923..cc450fc8ec 100644 --- a/poi-ooxml/src/main/java/org/apache/poi/poifs/crypt/dsig/OOXMLURIDereferencer.java +++ b/poi-ooxml/src/main/java/org/apache/poi/poifs/crypt/dsig/OOXMLURIDereferencer.java @@ -36,6 +36,7 @@ import javax.xml.crypto.URIReference; import javax.xml.crypto.URIReferenceException; import javax.xml.crypto.XMLCryptoContext; +import org.apache.commons.io.IOUtils; import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -81,7 +82,7 @@ public class OOXMLURIDereferencer implements URIDereferencer { return baseUriDereferencer.dereference(uriReference, context); } - InputStream dataStream; + InputStream dataStream = null; try { dataStream = part.getInputStream(); @@ -99,6 +100,7 @@ public class OOXMLURIDereferencer implements URIDereferencer { } } } catch (IOException e) { + IOUtils.closeQuietly(dataStream); throw new URIReferenceException("I/O error: " + e.getMessage(), e); } diff --git a/poi-ooxml/src/main/java/org/apache/poi/xssf/binary/XSSFBSharedStringsTable.java b/poi-ooxml/src/main/java/org/apache/poi/xssf/binary/XSSFBSharedStringsTable.java index f658482b09..ad566183f9 100644 --- a/poi-ooxml/src/main/java/org/apache/poi/xssf/binary/XSSFBSharedStringsTable.java +++ b/poi-ooxml/src/main/java/org/apache/poi/xssf/binary/XSSFBSharedStringsTable.java @@ -68,8 +68,9 @@ public class XSSFBSharedStringsTable implements SharedStrings { // Some workbooks have no shared strings table. if (parts.size() > 0) { PackagePart sstPart = parts.get(0); - - readFrom(sstPart.getInputStream()); + try (InputStream stream = sstPart.getInputStream()) { + readFrom(stream); + } } } diff --git a/poi-ooxml/src/main/java/org/apache/poi/xssf/eventusermodel/ReadOnlySharedStringsTable.java b/poi-ooxml/src/main/java/org/apache/poi/xssf/eventusermodel/ReadOnlySharedStringsTable.java index 0ca6e685df..2f0c958260 100644 --- a/poi-ooxml/src/main/java/org/apache/poi/xssf/eventusermodel/ReadOnlySharedStringsTable.java +++ b/poi-ooxml/src/main/java/org/apache/poi/xssf/eventusermodel/ReadOnlySharedStringsTable.java @@ -131,7 +131,9 @@ public class ReadOnlySharedStringsTable extends DefaultHandler implements Shared // Some workbooks have no shared strings table. if (parts.size() > 0) { PackagePart sstPart = parts.get(0); - readFrom(sstPart.getInputStream()); + try (InputStream stream = sstPart.getInputStream()) { + readFrom(stream); + } } } diff --git a/poi-ooxml/src/main/java/org/apache/poi/xssf/eventusermodel/XSSFBReader.java b/poi-ooxml/src/main/java/org/apache/poi/xssf/eventusermodel/XSSFBReader.java index c8f7fba0f7..deebf72836 100644 --- a/poi-ooxml/src/main/java/org/apache/poi/xssf/eventusermodel/XSSFBReader.java +++ b/poi-ooxml/src/main/java/org/apache/poi/xssf/eventusermodel/XSSFBReader.java @@ -165,7 +165,9 @@ public class XSSFBReader extends XSSFReader { } PackagePartName commentsName = PackagingURIHelper.createPartName(comments.getTargetURI()); PackagePart commentsPart = sheetPkg.getPackage().getPart(commentsName); - return new XSSFBCommentsTable(commentsPart.getInputStream()); + try (InputStream stream = commentsPart.getInputStream()) { + return new XSSFBCommentsTable(stream); + } } } catch (InvalidFormatException | IOException e) { return null; -- 2.39.5