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