This is an automated email from the ASF dual-hosted git repository.

garydgregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-compress.git

commit daf142e96f8ef9e39e725d164c5a0ad2de2bf14e
Author: Gary Gregory <[email protected]>
AuthorDate: Mon Aug 10 18:10:59 2026 -0400

    TapeInputStream now throws ArchiveException instead of
    IllegalArgumentException.
---
 src/changes/changes.xml                                             | 1 +
 .../org/apache/commons/compress/archivers/dump/TapeInputStream.java | 6 +++---
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index a94e2bca8..dc99f81ce 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -74,6 +74,7 @@ The <action> type attribute can be add,update,fix,remove.
       <action type="fix" dev="ggregory" due-to="Philip Betzler-Braun, Gary 
Gregory, Piotr P. Karwasz" issue="COMPRESS-712">Unsanitized read causes 
IndexOutOfBoundsException in #749.</action>
       <action type="fix" dev="ggregory" due-to="Gary Gregory, KALI 
834X">DumpArchiveEntry rejects out-of-range directory header count 
(#781).</action>
       <action type="fix" dev="ggregory" due-to="Gary 
Gregory">DumpArchiveInputStream now throws ArchiveException instead of 
IllegalArgumentException.</action>
+      <action type="fix" dev="ggregory" due-to="Gary 
Gregory">TapeArchiveInputStream now throws ArchiveException instead of 
IllegalArgumentException.</action>
       <!-- FIX zip -->
       <action type="fix" dev="ggregory" due-to="Dominik Stadler, Gary Gregory" 
issue="COMPRESS-598">ZipArchiveInputStream.read(byte[], int, int) now throws an 
IOException instead of a NullPointerException.</action>
       <action type="fix" dev="ggregory" due-to="Tyler Nighswander, Gary 
Gregory">ZipFile.createBoundedInputStream(long, long) now throws an 
ArchiveException instead of IllegalArgumentException.</action>
diff --git 
a/src/main/java/org/apache/commons/compress/archivers/dump/TapeInputStream.java 
b/src/main/java/org/apache/commons/compress/archivers/dump/TapeInputStream.java
index 91754166a..172f22f87 100644
--- 
a/src/main/java/org/apache/commons/compress/archivers/dump/TapeInputStream.java
+++ 
b/src/main/java/org/apache/commons/compress/archivers/dump/TapeInputStream.java
@@ -116,7 +116,7 @@ public byte[] peek() throws IOException {
      */
     @Override
     public int read() throws IOException {
-        throw new IllegalArgumentException("All reads must be multiple of 
record size (" + RECORD_SIZE + " bytes.");
+        throw new ArchiveException("All reads must be multiple of record size 
(" + RECORD_SIZE + " bytes.");
     }
 
     /**
@@ -135,7 +135,7 @@ public int read(final byte[] b, int off, final int len) 
throws IOException {
             return 0;
         }
         if (len % RECORD_SIZE != 0) {
-            throw new IllegalArgumentException("All reads must be multiple of 
record size (" + RECORD_SIZE + " bytes.");
+            throw new ArchiveException("All reads must be multiple of record 
size (" + RECORD_SIZE + " bytes.");
         }
         int bytes = 0;
         while (bytes < len) {
@@ -313,7 +313,7 @@ void resetBlockSize(final int recsPerBlock, final boolean 
isCompressed) throws I
     @Override
     public long skip(final long len) throws IOException {
         if (len % RECORD_SIZE != 0) {
-            throw new IllegalArgumentException("All reads must be multiple of 
record size (" + RECORD_SIZE + " bytes.");
+            throw new ArchiveException("All reads must be multiple of record 
size (" + RECORD_SIZE + " bytes.");
         }
         long bytes = 0;
         while (bytes < len) {

Reply via email to