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]