You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2024/02/17 22:16:28 UTC
(commons-compress) 06/14: Reuse IOUtils.readRange()
This is an automated email from the ASF dual-hosted git repository.
ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-compress.git
commit 0df503de8cb080117191e07091c748db5aa33e26
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Sat Feb 17 10:13:46 2024 -0500
Reuse IOUtils.readRange()
---
.../compress/harmony/unpack200/SegmentHeader.java | 28 ++--------------------
1 file changed, 2 insertions(+), 26 deletions(-)
diff --git a/src/main/java/org/apache/commons/compress/harmony/unpack200/SegmentHeader.java b/src/main/java/org/apache/commons/compress/harmony/unpack200/SegmentHeader.java
index 01b1b12d4..a83057518 100644
--- a/src/main/java/org/apache/commons/compress/harmony/unpack200/SegmentHeader.java
+++ b/src/main/java/org/apache/commons/compress/harmony/unpack200/SegmentHeader.java
@@ -17,13 +17,13 @@
package org.apache.commons.compress.harmony.unpack200;
import java.io.ByteArrayInputStream;
-import java.io.EOFException;
import java.io.IOException;
import java.io.InputStream;
import org.apache.commons.compress.harmony.pack200.BHSDCodec;
import org.apache.commons.compress.harmony.pack200.Codec;
import org.apache.commons.compress.harmony.pack200.Pack200Exception;
+import org.apache.commons.compress.utils.IOUtils;
/**
* SegmentHeader is the header band of a {@link Segment}
@@ -299,36 +299,12 @@ public class SegmentHeader {
parseClassCounts(in);
if (getBandHeadersSize() > 0) {
- final byte[] bandHeaders = new byte[getBandHeadersSize()];
- readFully(in, bandHeaders);
- setBandHeadersData(bandHeaders);
+ setBandHeadersData(IOUtils.readRange(in, getBandHeadersSize()));
}
archiveSizeOffset -= in.available();
}
- /**
- * Completely reads in a byte array, akin to the implementation in {@link java.io.DataInputStream}. TODO Refactor out into a separate InputStream handling
- * class
- *
- * @param in the input stream to read from
- * @param data the byte array to read into
- * @throws IOException if a problem occurs during reading from the underlying stream
- */
- private void readFully(final InputStream in, final byte[] data) throws IOException {
- int total = in.read(data);
- if (total == -1) {
- throw new EOFException("Failed to read any data from input stream");
- }
- while (total < data.length) {
- final int delta = in.read(data, total, data.length - total);
- if (delta == -1) {
- throw new EOFException("Failed to read some data from input stream");
- }
- total += delta;
- }
- }
-
/**
* Sets the major version of this archive.
*