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 9399923c47e7dd9b2a202be21770b4d42dcdddda Author: Gary Gregory <garydgreg...@gmail.com> AuthorDate: Sat Feb 17 10:10:48 2024 -0500 Reuse IOUtils.readRange() --- .../apache/commons/compress/harmony/unpack200/FileBands.java | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/main/java/org/apache/commons/compress/harmony/unpack200/FileBands.java b/src/main/java/org/apache/commons/compress/harmony/unpack200/FileBands.java index e6db16fda..6aab4eed5 100644 --- a/src/main/java/org/apache/commons/compress/harmony/unpack200/FileBands.java +++ b/src/main/java/org/apache/commons/compress/harmony/unpack200/FileBands.java @@ -73,18 +73,16 @@ public class FileBands extends BandSet { } // TODO: stream the file bits directly somehow - public void processFileBits() throws IOException, Pack200Exception { + public void processFileBits() throws IOException { // now read in the bytes final int numberOfFiles = header.getNumberOfFiles(); fileBits = new byte[numberOfFiles][]; for (int i = 0; i < numberOfFiles; i++) { final int size = (int) fileSize[i]; - // TODO This breaks if file_size > 2^32. Probably an array is - // not the right choice, and we should just serialize it here? - fileBits[i] = new byte[size]; - final int read = IOUtils.readFully(in, fileBits[i]); + fileBits[i] = IOUtils.readRange(in, size); + final int read = fileBits[i].length; if (size != 0 && read < size) { - throw new Pack200Exception("Expected to read " + size + " bytes but read " + read); + throw new IOException("Expected to read " + size + " bytes but read " + read); } } }