You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by fa...@apache.org on 2020/01/02 21:10:55 UTC

svn commit: r1872270 - /poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java

Author: fanningpj
Date: Thu Jan  2 21:10:54 2020
New Revision: 1872270

URL: http://svn.apache.org/viewvc?rev=1872270&view=rev
Log:
[bug-64045] close resources if we throw exceptions

Modified:
    poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java

Modified: poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java?rev=1872270&r1=1872269&r2=1872270&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java (original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java Thu Jan  2 21:10:54 2020
@@ -493,8 +493,9 @@ public class XSSFWorkbook extends POIXML
      * Create a new SpreadsheetML package and setup the default minimal content
      */
     protected static OPCPackage newPackage(XSSFWorkbookType workbookType) {
+        OPCPackage pkg = null;
         try {
-            OPCPackage pkg = OPCPackage.create(new ByteArrayOutputStream());    // NOSONAR - we do not want to close this here
+            pkg = OPCPackage.create(new ByteArrayOutputStream());    // NOSONAR - we do not want to close this here
             // Main part
             PackagePartName corePartName = PackagingURIHelper.createPartName(XSSFRelation.WORKBOOK.getDefaultFileName());
             // Create main part relationship
@@ -503,11 +504,11 @@ public class XSSFWorkbook extends POIXML
             pkg.createPart(corePartName, workbookType.getContentType());
 
             pkg.getPackageProperties().setCreatorProperty(DOCUMENT_CREATOR);
-
-            return pkg;
-        } catch (Exception e){
+        } catch (Exception e) {
+            IOUtils.closeQuietly(pkg);
             throw new POIXMLException(e);
         }
+        return pkg;
     }
 
     /**
@@ -541,7 +542,7 @@ public class XSSFWorkbook extends POIXML
         XSSFPictureData img = createRelationship(XSSFPictureData.RELATIONS[format], this.xssfFactory, imageNumber, true).getDocumentPart();
         try (OutputStream out = img.getPackagePart().getOutputStream()) {
             out.write(pictureData);
-        } catch (IOException e){
+        } catch (IOException e) {
             throw new POIXMLException(e);
         }
         pictures.add(img);
@@ -589,8 +590,11 @@ public class XSSFWorkbook extends POIXML
 
     @Override
     public void close() throws IOException {
-        super.close();
-        sharedStringSource.close();
+        try {
+            super.close();
+        } finally {
+            IOUtils.closeQuietly(sharedStringSource);
+        }
     }
 
     /**



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org