From 578d78da37fd4b2035e865d746e40471f417c116 Mon Sep 17 00:00:00 2001 From: PJ Fanning Date: Fri, 3 Jan 2020 11:27:01 +0000 Subject: [PATCH] [bug-64045] close resources if we throw exceptions git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1872284 13f79535-47bb-0310-9956-ffa450edef68 --- src/ooxml/java/org/apache/poi/ooxml/POIXMLDocumentPart.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/ooxml/java/org/apache/poi/ooxml/POIXMLDocumentPart.java b/src/ooxml/java/org/apache/poi/ooxml/POIXMLDocumentPart.java index d329d44a3f..7d3bcc40a9 100644 --- a/src/ooxml/java/org/apache/poi/ooxml/POIXMLDocumentPart.java +++ b/src/ooxml/java/org/apache/poi/ooxml/POIXMLDocumentPart.java @@ -759,7 +759,7 @@ public class POIXMLDocumentPart { /** * Retrieves the core document part * - * @since POI 3.14-Beta1 + * Since POI 4.1.2 - pkg is closed if this method throws an exception */ private static PackagePart getPartFromOPCPackage(OPCPackage pkg, String coreDocumentRel) { PackageRelationship coreRel = pkg.getRelationshipsByType(coreDocumentRel).getRelationship(0); @@ -767,6 +767,7 @@ public class POIXMLDocumentPart { if (coreRel != null) { PackagePart pp = pkg.getPart(coreRel); if (pp == null) { + IOUtils.closeQuietly(pkg); throw new POIXMLException("OOXML file structure broken/invalid - core document '" + coreRel.getTargetURI() + "' not found."); } return pp; @@ -778,6 +779,7 @@ public class POIXMLDocumentPart { throw new POIXMLException("Strict OOXML isn't currently supported, please see bug #57699"); } + IOUtils.closeQuietly(pkg); throw new POIXMLException("OOXML file structure broken/invalid - no core document found!"); } } -- 2.39.5