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 2021/12/28 01:55:57 UTC

svn commit: r1896461 - in /poi/trunk/poi-ooxml/src: main/java/org/apache/poi/ooxml/util/ main/java/org/apache/poi/xddf/usermodel/chart/ main/java/org/apache/poi/xssf/binary/ main/java/org/apache/poi/xssf/model/ main/java/org/apache/poi/xssf/streaming/ ...

Author: fanningpj
Date: Tue Dec 28 01:55:57 2021
New Revision: 1896461

URL: http://svn.apache.org/viewvc?rev=1896461&view=rev
Log:
close input streams for parts

Modified:
    poi/trunk/poi-ooxml/src/main/java/org/apache/poi/ooxml/util/PackageHelper.java
    poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xddf/usermodel/chart/XDDFChart.java
    poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/binary/XSSFBSharedStringsTable.java
    poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/model/CalculationChain.java
    poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/model/CommentsTable.java
    poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/model/ExternalLinksTable.java
    poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/model/MapInfo.java
    poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/model/SharedStringsTable.java
    poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/model/SingleXmlCells.java
    poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/model/StylesTable.java
    poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/streaming/SXSSFPicture.java
    poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFPicture.java
    poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFPivotCache.java
    poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFPivotCacheDefinition.java
    poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFPivotCacheRecords.java
    poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFPivotTable.java
    poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFTable.java
    poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java
    poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/model/TestStylesTable.java

Modified: poi/trunk/poi-ooxml/src/main/java/org/apache/poi/ooxml/util/PackageHelper.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/ooxml/util/PackageHelper.java?rev=1896461&r1=1896460&r2=1896461&view=diff
==============================================================================
--- poi/trunk/poi-ooxml/src/main/java/org/apache/poi/ooxml/util/PackageHelper.java (original)
+++ poi/trunk/poi-ooxml/src/main/java/org/apache/poi/ooxml/util/PackageHelper.java Tue Dec 28 01:55:57 2021
@@ -43,10 +43,25 @@ import org.apache.poi.util.IOUtils;
 public final class PackageHelper {
 
     public static OPCPackage open(InputStream is) throws IOException {
+        return open(is, false);
+    }
+
+    /**
+     * @param stream
+     * @param closeStream whether to close the stream (default is false)
+     * @since POI 5.2.0
+     * @return OPCPackage
+     * @throws IOException
+     */
+    public static OPCPackage open(InputStream stream, boolean closeStream) throws IOException {
         try {
-            return OPCPackage.open(is);
+            return OPCPackage.open(stream);
         } catch (InvalidFormatException e){
             throw new POIXMLException(e);
+        } finally {
+            if (closeStream) {
+                stream.close();
+            }
         }
     }
 

Modified: poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xddf/usermodel/chart/XDDFChart.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xddf/usermodel/chart/XDDFChart.java?rev=1896461&r1=1896460&r2=1896461&view=diff
==============================================================================
--- poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xddf/usermodel/chart/XDDFChart.java (original)
+++ poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xddf/usermodel/chart/XDDFChart.java Tue Dec 28 01:55:57 2021
@@ -22,6 +22,7 @@ package org.apache.poi.xddf.usermodel.ch
 import static org.apache.poi.ooxml.POIXMLTypeLoader.DEFAULT_XML_OPTIONS;
 
 import java.io.IOException;
+import java.io.InputStream;
 import java.io.OutputStream;
 import java.util.ArrayList;
 import java.util.Collections;
@@ -147,7 +148,9 @@ public abstract class XDDFChart extends
     protected XDDFChart(PackagePart part) throws IOException, XmlException {
         super(part);
 
-        chartSpace = ChartSpaceDocument.Factory.parse(part.getInputStream(), DEFAULT_XML_OPTIONS).getChartSpace();
+        try (InputStream stream = part.getInputStream()) {
+            chartSpace = ChartSpaceDocument.Factory.parse(stream, DEFAULT_XML_OPTIONS).getChartSpace();
+        }
     }
 
     /**

Modified: poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/binary/XSSFBSharedStringsTable.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/binary/XSSFBSharedStringsTable.java?rev=1896461&r1=1896460&r2=1896461&view=diff
==============================================================================
--- poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/binary/XSSFBSharedStringsTable.java (original)
+++ poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/binary/XSSFBSharedStringsTable.java Tue Dec 28 01:55:57 2021
@@ -77,7 +77,9 @@ public class XSSFBSharedStringsTable imp
      * Like POIXMLDocumentPart constructor
      */
     XSSFBSharedStringsTable(PackagePart part) throws IOException, SAXException {
-        readFrom(part.getInputStream());
+        try (InputStream stream = part.getInputStream()) {
+            readFrom(stream);
+        }
     }
 
     private void readFrom(InputStream inputStream) throws IOException {

Modified: poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/model/CalculationChain.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/model/CalculationChain.java?rev=1896461&r1=1896460&r2=1896461&view=diff
==============================================================================
--- poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/model/CalculationChain.java (original)
+++ poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/model/CalculationChain.java Tue Dec 28 01:55:57 2021
@@ -46,7 +46,9 @@ public class CalculationChain extends PO
      */
     public CalculationChain(PackagePart part) throws IOException {
         super(part);
-        readFrom(part.getInputStream());
+        try (InputStream stream = part.getInputStream()) {
+            readFrom(stream);
+        }
     }
 
     public void readFrom(InputStream is) throws IOException {

Modified: poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/model/CommentsTable.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/model/CommentsTable.java?rev=1896461&r1=1896460&r2=1896461&view=diff
==============================================================================
--- poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/model/CommentsTable.java (original)
+++ poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/model/CommentsTable.java Tue Dec 28 01:55:57 2021
@@ -76,7 +76,9 @@ public class CommentsTable extends POIXM
      */
     public CommentsTable(PackagePart part) throws IOException {
         super(part);
-        readFrom(part.getInputStream());
+        try (InputStream stream = part.getInputStream()) {
+            readFrom(stream);
+        }
     }
     
     public void readFrom(InputStream is) throws IOException {

Modified: poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/model/ExternalLinksTable.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/model/ExternalLinksTable.java?rev=1896461&r1=1896460&r2=1896461&view=diff
==============================================================================
--- poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/model/ExternalLinksTable.java (original)
+++ poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/model/ExternalLinksTable.java Tue Dec 28 01:55:57 2021
@@ -56,7 +56,9 @@ public class ExternalLinksTable extends
      */
     public ExternalLinksTable(PackagePart part) throws IOException {
         super(part);
-        readFrom(part.getInputStream());
+        try (InputStream stream = part.getInputStream()) {
+            readFrom(stream);
+        }
     }
 
     public void readFrom(InputStream is) throws IOException {

Modified: poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/model/MapInfo.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/model/MapInfo.java?rev=1896461&r1=1896460&r2=1896461&view=diff
==============================================================================
--- poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/model/MapInfo.java (original)
+++ poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/model/MapInfo.java Tue Dec 28 01:55:57 2021
@@ -63,7 +63,9 @@ public class MapInfo extends POIXMLDocum
      */
     public MapInfo(PackagePart part) throws IOException {
         super(part);
-        readFrom(part.getInputStream());
+        try (InputStream stream = part.getInputStream()) {
+            readFrom(stream);
+        }
     }
 
     public void readFrom(InputStream is) throws IOException {

Modified: poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/model/SharedStringsTable.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/model/SharedStringsTable.java?rev=1896461&r1=1896460&r2=1896461&view=diff
==============================================================================
--- poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/model/SharedStringsTable.java (original)
+++ poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/model/SharedStringsTable.java Tue Dec 28 01:55:57 2021
@@ -108,7 +108,9 @@ public class SharedStringsTable extends
      */
     public SharedStringsTable(PackagePart part) throws IOException {
         super(part);
-        readFrom(part.getInputStream());
+        try (InputStream stream = part.getInputStream()) {
+            readFrom(stream);
+        }
     }
 
     /**

Modified: poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/model/SingleXmlCells.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/model/SingleXmlCells.java?rev=1896461&r1=1896460&r2=1896461&view=diff
==============================================================================
--- poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/model/SingleXmlCells.java (original)
+++ poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/model/SingleXmlCells.java Tue Dec 28 01:55:57 2021
@@ -56,7 +56,9 @@ public class SingleXmlCells extends POIX
      */
     public SingleXmlCells(PackagePart part) throws IOException {
         super(part);
-        readFrom(part.getInputStream());
+        try (InputStream stream = part.getInputStream()) {
+            readFrom(stream);
+        }
     }
 
     public void readFrom(InputStream is) throws IOException {

Modified: poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/model/StylesTable.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/model/StylesTable.java?rev=1896461&r1=1896460&r2=1896461&view=diff
==============================================================================
--- poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/model/StylesTable.java (original)
+++ poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/model/StylesTable.java Tue Dec 28 01:55:57 2021
@@ -155,7 +155,17 @@ public class StylesTable extends POIXMLD
      */
     public StylesTable(PackagePart part) throws IOException {
         super(part);
-        readFrom(part.getInputStream());
+        try (InputStream stream = part.getInputStream()) {
+            readFrom(stream);
+        }
+    }
+
+    /**
+     * @since POI 5.2.0
+     */
+    public StylesTable(InputStream stream) throws IOException {
+        super();
+        readFrom(stream);
     }
 
     public void setWorkbook(XSSFWorkbook wb) {

Modified: poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/streaming/SXSSFPicture.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/streaming/SXSSFPicture.java?rev=1896461&r1=1896460&r2=1896461&view=diff
==============================================================================
--- poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/streaming/SXSSFPicture.java (original)
+++ poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/streaming/SXSSFPicture.java Tue Dec 28 01:55:57 2021
@@ -19,6 +19,7 @@ package org.apache.poi.xssf.streaming;
 
 import java.awt.Dimension;
 import java.io.IOException;
+import java.io.InputStream;
 
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
@@ -218,8 +219,8 @@ public final class SXSSFPicture implemen
      * @return image dimension in pixels
      */
     protected static Dimension getImageDimension(PackagePart part, int type){
-        try {
-            return ImageUtils.getImageDimension(part.getInputStream(), type);
+        try (InputStream stream = part.getInputStream()) {
+            return ImageUtils.getImageDimension(stream, type);
         } catch (IOException e){
             //return a "singulariry" if ImageIO failed to read the image
             LOG.atWarn().withThrowable(e).log("Failed to read image");

Modified: poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFPicture.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFPicture.java?rev=1896461&r1=1896460&r2=1896461&view=diff
==============================================================================
--- poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFPicture.java (original)
+++ poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFPicture.java Tue Dec 28 01:55:57 2021
@@ -19,6 +19,7 @@ package org.apache.poi.xssf.usermodel;
 
 import java.awt.Dimension;
 import java.io.IOException;
+import java.io.InputStream;
 
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
@@ -239,8 +240,8 @@ public final class XSSFPicture extends X
      * @return image dimension in pixels
      */
     protected static Dimension getImageDimension(PackagePart part, int type){
-        try {
-            return ImageUtils.getImageDimension(part.getInputStream(), type);
+        try (InputStream stream = part.getInputStream()) {
+            return ImageUtils.getImageDimension(stream, type);
         } catch (IOException e){
             //return a "singulariry" if ImageIO failed to read the image
             LOG.atWarn().withThrowable(e).log("Failed to read image");

Modified: poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFPivotCache.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFPivotCache.java?rev=1896461&r1=1896460&r2=1896461&view=diff
==============================================================================
--- poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFPivotCache.java (original)
+++ poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFPivotCache.java Tue Dec 28 01:55:57 2021
@@ -16,11 +16,6 @@
 ==================================================================== */
 package org.apache.poi.xssf.usermodel;
 
-import static org.apache.poi.ooxml.POIXMLTypeLoader.DEFAULT_XML_OPTIONS;
-
-import java.io.IOException;
-import java.io.InputStream;
-
 import org.apache.poi.ooxml.POIXMLDocumentPart;
 import org.apache.poi.openxml4j.opc.PackagePart;
 import org.apache.poi.util.Beta;
@@ -28,6 +23,11 @@ import org.apache.xmlbeans.XmlException;
 import org.apache.xmlbeans.XmlOptions;
 import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTPivotCache;
 
+import java.io.IOException;
+import java.io.InputStream;
+
+import static org.apache.poi.ooxml.POIXMLTypeLoader.DEFAULT_XML_OPTIONS;
+
 public class XSSFPivotCache extends POIXMLDocumentPart {
 
     private CTPivotCache ctPivotCache;
@@ -55,16 +55,18 @@ public class XSSFPivotCache extends POIX
     @Beta
     protected XSSFPivotCache(PackagePart part) throws IOException {
         super(part);
-        readFrom(part.getInputStream());
+        try (InputStream stream = part.getInputStream()) {
+            readFrom(stream);
+        }
     }
     
     @Beta
     protected void readFrom(InputStream is) throws IOException {
-    try {
-        XmlOptions options  = new XmlOptions(DEFAULT_XML_OPTIONS);
-        //Removing root element
-        options.setLoadReplaceDocumentElement(null);
-        ctPivotCache = CTPivotCache.Factory.parse(is, options);
+        try {
+            XmlOptions options = new XmlOptions(DEFAULT_XML_OPTIONS);
+            //Removing root element
+            options.setLoadReplaceDocumentElement(null);
+            ctPivotCache = CTPivotCache.Factory.parse(is, options);
         } catch (XmlException e) {
             throw new IOException(e.getLocalizedMessage());
         }

Modified: poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFPivotCacheDefinition.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFPivotCacheDefinition.java?rev=1896461&r1=1896460&r2=1896461&view=diff
==============================================================================
--- poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFPivotCacheDefinition.java (original)
+++ poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFPivotCacheDefinition.java Tue Dec 28 01:55:57 2021
@@ -65,7 +65,9 @@ public class XSSFPivotCacheDefinition ex
     @Beta
     protected XSSFPivotCacheDefinition(PackagePart part) throws IOException {
         super(part);
-        readFrom(part.getInputStream());
+        try (InputStream stream = part.getInputStream()) {
+            readFrom(stream);
+        }
     }
     
     @Beta

Modified: poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFPivotCacheRecords.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFPivotCacheRecords.java?rev=1896461&r1=1896460&r2=1896461&view=diff
==============================================================================
--- poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFPivotCacheRecords.java (original)
+++ poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFPivotCacheRecords.java Tue Dec 28 01:55:57 2021
@@ -52,7 +52,9 @@ public class XSSFPivotCacheRecords exten
     @Beta
     protected XSSFPivotCacheRecords(PackagePart part) throws IOException {
         super(part);
-        readFrom(part.getInputStream());
+        try (InputStream stream = part.getInputStream()) {
+            readFrom(stream);
+        }
     }
     
     @Beta

Modified: poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFPivotTable.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFPivotTable.java?rev=1896461&r1=1896460&r2=1896461&view=diff
==============================================================================
--- poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFPivotTable.java (original)
+++ poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFPivotTable.java Tue Dec 28 01:55:57 2021
@@ -16,21 +16,9 @@
 ==================================================================== */
 package org.apache.poi.xssf.usermodel;
 
-import static org.apache.poi.ooxml.POIXMLTypeLoader.DEFAULT_XML_OPTIONS;
-
-import javax.xml.namespace.QName;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
 import org.apache.poi.ooxml.POIXMLDocumentPart;
 import org.apache.poi.openxml4j.opc.PackagePart;
 import org.apache.poi.ss.SpreadsheetVersion;
-import org.apache.poi.ss.usermodel.Cell;
-import org.apache.poi.ss.usermodel.CellType;
 import org.apache.poi.ss.usermodel.DataConsolidateFunction;
 import org.apache.poi.ss.usermodel.DataFormat;
 import org.apache.poi.ss.usermodel.Sheet;
@@ -41,26 +29,17 @@ import org.apache.poi.util.Beta;
 import org.apache.poi.util.Internal;
 import org.apache.xmlbeans.XmlException;
 import org.apache.xmlbeans.XmlOptions;
-import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTCacheSource;
-import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTColFields;
-import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTDataField;
-import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTDataFields;
-import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTField;
-import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTItems;
-import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTLocation;
-import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTPageField;
-import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTPageFields;
-import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTPivotCacheDefinition;
-import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTPivotField;
-import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTPivotFields;
-import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTPivotTableDefinition;
-import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTPivotTableStyle;
-import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTRowFields;
-import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTWorksheetSource;
-import org.openxmlformats.schemas.spreadsheetml.x2006.main.STAxis;
-import org.openxmlformats.schemas.spreadsheetml.x2006.main.STDataConsolidateFunction;
-import org.openxmlformats.schemas.spreadsheetml.x2006.main.STItemType;
-import org.openxmlformats.schemas.spreadsheetml.x2006.main.STSourceType;
+import org.openxmlformats.schemas.spreadsheetml.x2006.main.*;
+
+import javax.xml.namespace.QName;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+import static org.apache.poi.ooxml.POIXMLTypeLoader.DEFAULT_XML_OPTIONS;
 
 public class XSSFPivotTable extends POIXMLDocumentPart {
 
@@ -95,13 +74,15 @@ public class XSSFPivotTable extends POIX
     @Beta
     protected XSSFPivotTable(PackagePart part) throws IOException {
         super(part);
-        readFrom(part.getInputStream());
+        try (InputStream stream = part.getInputStream()) {
+            readFrom(stream);
+        }
     }
-    
+
     @Beta
     public void readFrom(InputStream is) throws IOException {
-    try {
-            XmlOptions options  = new XmlOptions(DEFAULT_XML_OPTIONS);
+        try {
+            XmlOptions options = new XmlOptions(DEFAULT_XML_OPTIONS);
             //Removing root element
             options.setLoadReplaceDocumentElement(null);
             pivotTableDefinition = CTPivotTableDefinition.Factory.parse(is, options);

Modified: poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFTable.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFTable.java?rev=1896461&r1=1896460&r2=1896461&view=diff
==============================================================================
--- poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFTable.java (original)
+++ poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFTable.java Tue Dec 28 01:55:57 2021
@@ -81,7 +81,9 @@ public class XSSFTable extends POIXMLDoc
      */
     public XSSFTable(PackagePart part) throws IOException {
         super(part);
-        readFrom(part.getInputStream());
+        try (InputStream stream = part.getInputStream()) {
+            readFrom(stream);
+        }
     }
 
     /**

Modified: poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java?rev=1896461&r1=1896460&r2=1896461&view=diff
==============================================================================
--- poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java (original)
+++ poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java Tue Dec 28 01:55:57 2021
@@ -297,7 +297,11 @@ public class XSSFWorkbook extends POIXML
      * input format
      */
     public XSSFWorkbook(InputStream is) throws IOException {
-        this(PackageHelper.open(is));
+        this(is, false);
+    }
+
+    private XSSFWorkbook(InputStream is, boolean closeStream) throws IOException {
+        this(PackageHelper.open(is, closeStream));
     }
 
     /**
@@ -353,7 +357,7 @@ public class XSSFWorkbook extends POIXML
      * @since POI 4.0.0
      */
     public XSSFWorkbook(PackagePart part) throws IOException {
-        this(part.getInputStream());
+        this(part.getInputStream(), true);
     }
 
     /**

Modified: poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/model/TestStylesTable.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/model/TestStylesTable.java?rev=1896461&r1=1896460&r2=1896461&view=diff
==============================================================================
--- poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/model/TestStylesTable.java (original)
+++ poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/model/TestStylesTable.java Tue Dec 28 01:55:57 2021
@@ -17,6 +17,9 @@
 
 package org.apache.poi.xssf.model;
 
+import org.apache.poi.openxml4j.opc.OPCPackage;
+import org.apache.poi.openxml4j.opc.PackagePart;
+import org.apache.poi.xssf.usermodel.XSSFRelation;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
 
@@ -28,6 +31,8 @@ import static org.junit.jupiter.api.Asse
 import static org.junit.jupiter.api.Assertions.fail;
 
 import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
 import java.util.Map;
 
 import org.apache.poi.ss.usermodel.BuiltinFormats;
@@ -91,6 +96,18 @@ public final class TestStylesTable {
         }
     }
 
+    @Test
+    void testLoadStream() throws IOException {
+        try (OPCPackage pkg = XSSFTestDataSamples.openSamplePackage(testFile)) {
+            ArrayList<PackagePart> parts = pkg.getPartsByContentType(XSSFRelation.STYLES.getContentType());
+            assertEquals(1, parts.size());
+            try (InputStream stream = parts.get(0).getInputStream()) {
+                StylesTable st = new StylesTable(stream);
+                doTestExisting(st);
+            }
+        }
+    }
+
     @Test
     void testLoadSaveLoad() throws IOException {
         try (XSSFWorkbook workbook = XSSFTestDataSamples.openSampleWorkbook(testFile)) {



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