Author: fanningpj
Date: Sat Feb 19 14:01:19 2022
New Revision: 1898221

URL: http://svn.apache.org/viewvc?rev=1898221&view=rev
Log:
refactor some stream code

Modified:
    
poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hpbf/model/HPBFPart.java
    poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hslf/blip/EMF.java
    
poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hslf/blip/Metafile.java
    poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hslf/blip/WMF.java

Modified: 
poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hpbf/model/HPBFPart.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hpbf/model/HPBFPart.java?rev=1898221&r1=1898220&r2=1898221&view=diff
==============================================================================
--- 
poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hpbf/model/HPBFPart.java 
(original)
+++ 
poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hpbf/model/HPBFPart.java 
Sat Feb 19 14:01:19 2022
@@ -17,11 +17,11 @@
 
 package org.apache.poi.hpbf.model;
 
-import java.io.ByteArrayInputStream;
 import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.io.InputStream;
 
+import org.apache.commons.io.input.UnsynchronizedByteArrayInputStream;
 import org.apache.poi.poifs.filesystem.DirectoryNode;
 import org.apache.poi.util.IOUtils;
 
@@ -83,8 +83,9 @@ public abstract class HPBFPart {
         generateData();
 
         // Write out
-        ByteArrayInputStream bais = new ByteArrayInputStream(data);
-        dir.createDocument(path[path.length-1], bais);
+        try (UnsynchronizedByteArrayInputStream bais = new 
UnsynchronizedByteArrayInputStream(data)) {
+            dir.createDocument(path[path.length-1], bais);
+        }
     }
 
     /**

Modified: 
poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hslf/blip/EMF.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hslf/blip/EMF.java?rev=1898221&r1=1898220&r2=1898221&view=diff
==============================================================================
--- poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hslf/blip/EMF.java 
(original)
+++ poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hslf/blip/EMF.java 
Sat Feb 19 14:01:19 2022
@@ -18,11 +18,11 @@
 package org.apache.poi.hslf.blip;
 
 import java.awt.Dimension;
-import java.io.ByteArrayInputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.util.zip.InflaterInputStream;
 
+import org.apache.commons.io.input.UnsynchronizedByteArrayInputStream;
 import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream;
 import org.apache.poi.ddf.EscherBSERecord;
 import org.apache.poi.ddf.EscherContainerRecord;
@@ -68,10 +68,11 @@ public final class EMF extends Metafile
         Header header = new Header();
         header.read(rawdata, CHECKSUM_SIZE);
 
-        try (UnsynchronizedByteArrayOutputStream out = new 
UnsynchronizedByteArrayOutputStream();
-             InputStream is = new ByteArrayInputStream(rawdata);
-             InflaterInputStream inflater = new InflaterInputStream(is)) {
-
+        try (
+                InputStream is = new 
UnsynchronizedByteArrayInputStream(rawdata);
+                InflaterInputStream inflater = new InflaterInputStream(is);
+                UnsynchronizedByteArrayOutputStream out = new 
UnsynchronizedByteArrayOutputStream()
+        ) {
             long len = IOUtils.skipFully(is,header.getSize() + 
(long)CHECKSUM_SIZE);
             assert(len == header.getSize() + CHECKSUM_SIZE);
 

Modified: 
poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hslf/blip/Metafile.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hslf/blip/Metafile.java?rev=1898221&r1=1898220&r2=1898221&view=diff
==============================================================================
--- 
poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hslf/blip/Metafile.java 
(original)
+++ 
poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hslf/blip/Metafile.java 
Sat Feb 19 14:01:19 2022
@@ -19,21 +19,19 @@ package org.apache.poi.hslf.blip;
 
 import java.awt.Dimension;
 import java.awt.Rectangle;
-import java.io.ByteArrayInputStream;
 import java.io.IOException;
 import java.io.OutputStream;
 import java.util.zip.DeflaterOutputStream;
 
+import org.apache.commons.io.input.UnsynchronizedByteArrayInputStream;
 import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream;
 import org.apache.poi.ddf.EscherBSERecord;
 import org.apache.poi.ddf.EscherContainerRecord;
 import org.apache.poi.hslf.usermodel.HSLFPictureData;
-import org.apache.poi.hslf.usermodel.HSLFSlideShow;
 import org.apache.poi.util.Internal;
 import org.apache.poi.util.LittleEndian;
 import org.apache.poi.util.LittleEndianInputStream;
 import org.apache.poi.util.LittleEndianOutputStream;
-import org.apache.poi.util.Removal;
 import org.apache.poi.util.Units;
 
 /**
@@ -90,26 +88,29 @@ public abstract class Metafile extends H
          */
         private int filter = 254;
 
-        public void read(byte[] data, int offset){
-            @SuppressWarnings("resource")
-            LittleEndianInputStream leis = new LittleEndianInputStream(
-                new ByteArrayInputStream(data, offset, RECORD_LENGTH));
-
-            wmfsize = leis.readInt();
-
-            int left = leis.readInt();
-            int top = leis.readInt();
-            int right = leis.readInt();
-            int bottom = leis.readInt();
-            bounds.setBounds(left, top, right-left, bottom-top);
-
-            int width = leis.readInt();
-            int height = leis.readInt();
-            size.setSize(width, height);
-
-            zipsize = leis.readInt();
-            compression = leis.readUByte();
-            filter = leis.readUByte();
+        public void read(byte[] data, int offset) {
+            try (
+                    LittleEndianInputStream leis = new LittleEndianInputStream(
+                            new UnsynchronizedByteArrayInputStream(data, 
offset, RECORD_LENGTH))
+            ) {
+                wmfsize = leis.readInt();
+
+                int left = leis.readInt();
+                int top = leis.readInt();
+                int right = leis.readInt();
+                int bottom = leis.readInt();
+                bounds.setBounds(left, top, right - left, bottom - top);
+
+                int width = leis.readInt();
+                int height = leis.readInt();
+                size.setSize(width, height);
+
+                zipsize = leis.readInt();
+                compression = leis.readUByte();
+                filter = leis.readUByte();
+            } catch (IOException e) {
+                throw new IllegalStateException(e);
+            }
         }
 
         public void write(OutputStream out) throws IOException {

Modified: 
poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hslf/blip/WMF.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hslf/blip/WMF.java?rev=1898221&r1=1898220&r2=1898221&view=diff
==============================================================================
--- poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hslf/blip/WMF.java 
(original)
+++ poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hslf/blip/WMF.java 
Sat Feb 19 14:01:19 2022
@@ -18,11 +18,11 @@
 package org.apache.poi.hslf.blip;
 
 import java.awt.Dimension;
-import java.io.ByteArrayInputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.util.zip.InflaterInputStream;
 
+import org.apache.commons.io.input.UnsynchronizedByteArrayInputStream;
 import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream;
 import org.apache.poi.ddf.EscherBSERecord;
 import org.apache.poi.ddf.EscherContainerRecord;
@@ -64,10 +64,10 @@ public final class WMF extends Metafile
 
     @Override
     public byte[] getData(){
-        try {
-            byte[] rawdata = getRawData();
+        byte[] rawdata = getRawData();
+        try (InputStream is = new UnsynchronizedByteArrayInputStream(rawdata)) 
{
+
 
-            InputStream is = new ByteArrayInputStream( rawdata );
             Header header = new Header();
             header.read(rawdata, CHECKSUM_SIZE*getUIDInstanceCount());
             long skipLen = header.getSize() + 
(long)CHECKSUM_SIZE*getUIDInstanceCount();



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

Reply via email to