Author: fanningpj
Date: Sat Feb 19 22:13:26 2022
New Revision: 1898237

URL: http://svn.apache.org/viewvc?rev=1898237&view=rev
Log:
add extra max size config

Modified:
    
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFChart.java
    
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFComments.java
    
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFDocument.java
    
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFHeaderFooter.java
    
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFPictureData.java

Modified: 
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFChart.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFChart.java?rev=1898237&r1=1898236&r2=1898237&view=diff
==============================================================================
--- 
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFChart.java 
(original)
+++ 
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFChart.java 
Sat Feb 19 22:13:26 2022
@@ -94,7 +94,7 @@ public class XWPFChart extends XDDFChart
         if (this.checksum == null) {
             byte[] data;
             try (InputStream is = getPackagePart().getInputStream()) {
-                data = IOUtils.toByteArray(is);
+                data = IOUtils.toByteArray(is, 
XWPFPictureData.getMaxImageSize());
             } catch (IOException e) {
                 throw new POIXMLException(e);
             }

Modified: 
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFComments.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFComments.java?rev=1898237&r1=1898236&r2=1898237&view=diff
==============================================================================
--- 
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFComments.java
 (original)
+++ 
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFComments.java
 Sat Feb 19 22:13:26 2022
@@ -107,7 +107,7 @@ public class XWPFComments extends POIXML
      * @throws IOException            If reading the picture-data from the 
stream fails.
      */
     public String addPictureData(InputStream is, int format) throws 
InvalidFormatException, IOException {
-        byte[] data = IOUtils.toByteArray(is);
+        byte[] data = IOUtils.toByteArray(is, 
XWPFPictureData.getMaxImageSize());
         return addPictureData(data, format);
     }
 

Modified: 
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFDocument.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFDocument.java?rev=1898237&r1=1898236&r2=1898237&view=diff
==============================================================================
--- 
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFDocument.java
 (original)
+++ 
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFDocument.java
 Sat Feb 19 22:13:26 2022
@@ -1520,7 +1520,7 @@ public class XWPFDocument extends POIXML
 
     public String addPictureData(InputStream is, int format) throws 
InvalidFormatException {
         try {
-            byte[] data = IOUtils.toByteArray(is);
+            byte[] data = IOUtils.toByteArray(is, 
XWPFPictureData.getMaxImageSize());
             return addPictureData(data, format);
         } catch (IOException e) {
             throw new POIXMLException(e);

Modified: 
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFHeaderFooter.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFHeaderFooter.java?rev=1898237&r1=1898236&r2=1898237&view=diff
==============================================================================
--- 
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFHeaderFooter.java
 (original)
+++ 
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFHeaderFooter.java
 Sat Feb 19 22:13:26 2022
@@ -279,7 +279,7 @@ public abstract class XWPFHeaderFooter e
      * @throws IOException If reading the picture-data from the stream fails.
      */
     public String addPictureData(InputStream is, int format) throws 
InvalidFormatException, IOException {
-        byte[] data = IOUtils.toByteArray(is);
+        byte[] data = IOUtils.toByteArray(is, 
XWPFPictureData.getMaxImageSize());
         return addPictureData(data, format);
     }
 

Modified: 
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFPictureData.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFPictureData.java?rev=1898237&r1=1898236&r2=1898237&view=diff
==============================================================================
--- 
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFPictureData.java
 (original)
+++ 
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFPictureData.java
 Sat Feb 19 22:13:26 2022
@@ -34,6 +34,23 @@ import org.apache.poi.util.IOUtils;
  */
 public class XWPFPictureData extends POIXMLDocumentPart {
 
+    private static final int DEFAULT_MAX_IMAGE_SIZE = 100_000_000;
+    private static int MAX_IMAGE_SIZE = DEFAULT_MAX_IMAGE_SIZE;
+
+    /**
+     * @param length the max image size allowed for XSSF pictures
+     */
+    public static void setMaxImageSize(int length) {
+        MAX_IMAGE_SIZE = length;
+    }
+
+    /**
+     * @return the max image size allowed for XSSF pictures
+     */
+    public static int getMaxImageSize() {
+        return MAX_IMAGE_SIZE;
+    }
+
     /**
      * Relationships for each known picture type
      */
@@ -94,7 +111,7 @@ public class XWPFPictureData extends POI
      */
     public byte[] getData() {
         try (InputStream stream = getPackagePart().getInputStream()) {
-            return IOUtils.toByteArray(stream);
+            return IOUtils.toByteArray(stream, getMaxImageSize());
         } catch (IOException e) {
             throw new POIXMLException(e);
         }
@@ -146,15 +163,11 @@ public class XWPFPictureData extends POI
 
     public Long getChecksum() {
         if (this.checksum == null) {
-            InputStream is = null;
             byte[] data;
-            try {
-                is = getPackagePart().getInputStream();
-                data = IOUtils.toByteArray(is);
+            try (InputStream is = getPackagePart().getInputStream()) {
+                data = IOUtils.toByteArray(is, getMaxImageSize());
             } catch (IOException e) {
                 throw new POIXMLException(e);
-            } finally {
-                IOUtils.closeQuietly(is);
             }
             this.checksum = IOUtils.calculateChecksum(data);
         }



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to