From 89ccbec1dd0f5058413ae0bc4196c26dd7fb5fef Mon Sep 17 00:00:00 2001 From: PJ Fanning Date: Thu, 26 Oct 2023 18:20:33 +0000 Subject: [PATCH] [bug-67579] add new XWPFDocument/XMLSlideShow constructor git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1913363 13f79535-47bb-0310-9956-ffa450edef68 --- .../poi/xslf/usermodel/XMLSlideShow.java | 19 ++++++++++++++++--- .../poi/xwpf/usermodel/XWPFDocument.java | 19 ++++++++++++++++--- 2 files changed, 32 insertions(+), 6 deletions(-) diff --git a/poi-ooxml/src/main/java/org/apache/poi/xslf/usermodel/XMLSlideShow.java b/poi-ooxml/src/main/java/org/apache/poi/xslf/usermodel/XMLSlideShow.java index 38562f5a58..77f7c0e61c 100644 --- a/poi-ooxml/src/main/java/org/apache/poi/xslf/usermodel/XMLSlideShow.java +++ b/poi-ooxml/src/main/java/org/apache/poi/xslf/usermodel/XMLSlideShow.java @@ -129,14 +129,27 @@ public class XMLSlideShow extends POIXMLDocument } /** - * @param is InputStream + * @param stream InputStream, which is closed after it is read * @throws IOException If reading data from the stream fails * @throws POIXMLException a RuntimeException that can be caused by invalid OOXML data * @throws IllegalStateException a number of other runtime exceptions can be thrown, especially if there are problems with the * input format */ - public XMLSlideShow(InputStream is) throws IOException { - this(PackageHelper.open(is)); + public XMLSlideShow(InputStream stream) throws IOException { + this(stream, true); + } + + /** + * @param stream InputStream + * @param closeStream Whether to close the InputStream + * @throws IOException If reading data from the stream fails + * @throws POIXMLException a RuntimeException that can be caused by invalid OOXML data + * @throws IllegalStateException a number of other runtime exceptions can be thrown, especially if there are problems with the + * input format + * @since POI 5.2.5 + */ + public XMLSlideShow(InputStream stream, boolean closeStream) throws IOException { + this(PackageHelper.open(stream, closeStream)); } static OPCPackage empty() { diff --git a/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFDocument.java b/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFDocument.java index c9d84c426e..544bd209cf 100644 --- a/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFDocument.java +++ b/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFDocument.java @@ -150,14 +150,27 @@ public class XWPFDocument extends POIXMLDocument implements Document, IBody { } /** - * @param is The InputStream to read data from + * @param stream The InputStream to read data from - the stream is closed * @throws IOException If reading data from the stream fails * @throws POIXMLException a RuntimeException that can be caused by invalid OOXML data * @throws IllegalStateException a number of other runtime exceptions can be thrown, especially if there are problems with the * input format */ - public XWPFDocument(InputStream is) throws IOException { - super(PackageHelper.open(is)); + public XWPFDocument(InputStream stream) throws IOException { + this(stream, true); + } + + /** + * @param stream The InputStream to read data from + * @param closeStream Whether to close the InputStream + * @throws IOException If reading data from the stream fails + * @throws POIXMLException a RuntimeException that can be caused by invalid OOXML data + * @throws IllegalStateException a number of other runtime exceptions can be thrown, especially if there are problems with the + * input format + * @since POI 5.2.5 + */ + public XWPFDocument(InputStream stream, boolean closeStream) throws IOException { + super(PackageHelper.open(stream, closeStream)); //build a tree of POIXMLDocumentParts, this workbook being the root load(XWPFFactory.getInstance());