From 9017803980006ead9ad3933a64b8c9e8f2ea37cb Mon Sep 17 00:00:00 2001 From: Dominik Stadler Date: Tue, 26 May 2015 19:30:04 +0000 Subject: [PATCH] Make POIXMLDocument implement Closeable as it holds an OCPPackage with open resources and thus should be closed after usage. Until now only XSSFWorkbook did this, but it makes sense for all derived classes. Also make close() in POIXMLDocument public to not have to re-implement it in all sub-classes. git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1681822 13f79535-47bb-0310-9956-ffa450edef68 --- src/ooxml/java/org/apache/poi/POIXMLDocument.java | 5 +++-- .../apache/poi/xssf/usermodel/XSSFWorkbook.java | 10 ---------- .../org/apache/poi/TestPOIXMLDocument.java | 15 +++++++++------ 3 files changed, 12 insertions(+), 18 deletions(-) diff --git a/src/ooxml/java/org/apache/poi/POIXMLDocument.java b/src/ooxml/java/org/apache/poi/POIXMLDocument.java index bf241f897..0e18ee112 100644 --- a/src/ooxml/java/org/apache/poi/POIXMLDocument.java +++ b/src/ooxml/java/org/apache/poi/POIXMLDocument.java @@ -16,6 +16,7 @@ ==================================================================== */ package org.apache.poi; +import java.io.Closeable; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; @@ -37,7 +38,7 @@ import org.apache.poi.poifs.common.POIFSConstants; import org.apache.poi.util.IOUtils; import org.apache.xmlbeans.impl.common.SystemCache; -public abstract class POIXMLDocument extends POIXMLDocumentPart{ +public abstract class POIXMLDocument extends POIXMLDocumentPart implements Closeable { public static final String DOCUMENT_CREATOR = "Apache POI"; // OLE embeddings relation name @@ -171,7 +172,7 @@ public abstract class POIXMLDocument extends POIXMLDocumentPart{ * Closes the underlying {@link OPCPackage} from which this * document was read, if there is one */ - protected void close() throws IOException { + public void close() throws IOException { if (pkg != null) { if (pkg.getPackageAccess() == PackageAccess.READ) { pkg.revert(); diff --git a/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java b/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java index 9230797e4..9406fb17c 100644 --- a/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java +++ b/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java @@ -1548,16 +1548,6 @@ public class XSSFWorkbook extends POIXMLDocument implements Workbook, Iterable