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 9038888a2d2d29e476ad52b8138bb9e36ea08522 Author: Gary Gregory <[email protected]> AuthorDate: Mon Aug 10 18:03:47 2026 -0400 CpioArchiveInputStream now throws ArchiveException instead of IllegalArgumentException. --- src/changes/changes.xml | 1 + .../compress/archivers/cpio/CpioArchiveInputStream.java | 14 ++++++-------- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/src/changes/changes.xml b/src/changes/changes.xml index cccdaf14e..207d0be51 100644 --- a/src/changes/changes.xml +++ b/src/changes/changes.xml @@ -133,6 +133,7 @@ The <action> type attribute can be add,update,fix,remove. <action type="fix" issue="COMPRESS-718" dev="ggregory" due-to="Anay Wadhera, Gary Gregory">CpioArchiveEntry does not allow files over 4GB in OLD_ASCII format.</action> <action type="fix" dev="ggregory" due-to="Christopher Linke, Gary Gregory">Throw ArchiveException instead of EOFException when CPIO name size less than or equal to 0 #771.</action> <action type="fix" dev="ggregory" due-to="Gary Gregory">CpioArchiveEntry now throws ArchiveException instead of IllegalArgumentException.</action> + <action type="fix" dev="ggregory" due-to="Gary Gregory">CpioArchiveInputStream now throws ArchiveException instead of IllegalArgumentException.</action> <!-- FIX gzip --> <action type="fix" dev="ggregory" due-to="Gary Gregory">GzipParameters.setOperatingSystem(int) now throws CompressorException on illegal input.</action> <action type="fix" issue="COMPRESS-705" dev="ggregory" due-to="Mario Fredenhagen, Gary Gregory">GZip IOException: Extra subfield length exceeds remaining bytes in extra field; use new option GzipCompressorInputStream.Builder.setIgnoreExtraField(boolean).</action> diff --git a/src/main/java/org/apache/commons/compress/archivers/cpio/CpioArchiveInputStream.java b/src/main/java/org/apache/commons/compress/archivers/cpio/CpioArchiveInputStream.java index 26da0d860..ff35629af 100644 --- a/src/main/java/org/apache/commons/compress/archivers/cpio/CpioArchiveInputStream.java +++ b/src/main/java/org/apache/commons/compress/archivers/cpio/CpioArchiveInputStream.java @@ -186,7 +186,7 @@ public static boolean matches(final byte[] signature, final int length) { private CpioArchiveInputStream(final Builder builder) throws IOException { super(builder); if (builder.blockSize <= 0) { - throw new IllegalArgumentException("blockSize must be bigger than 0"); + throw new ArchiveException("blockSize must be bigger than 0"); } this.blockSize = builder.blockSize; this.zipEncoding = ZipEncodingHelper.getZipEncoding(builder.getCharset()); @@ -227,7 +227,7 @@ public CpioArchiveInputStream(final InputStream in, final int blockSize) throws * * @param in The cpio stream. * @param blockSize The block size of the archive. - * @param encoding The encoding of file names to expect - use null for the platform's default. + * @param encoding The encoding of file names to expect, use null for the platform's default. * @throws IllegalArgumentException if {@code blockSize} is not bigger than 0. * @throws IOException if an I/O error has occurred. * @since 1.6 @@ -244,7 +244,7 @@ public CpioArchiveInputStream(final InputStream in, final int blockSize, final S * <p>Since 1.29.0: throws {@link IOException}.</p> * * @param in The cpio stream. - * @param encoding The encoding of file names to expect - use null for the platform's default. + * @param encoding The encoding of file names to expect, use null for the platform's default. * @throws IOException if an I/O error has occurred. * @since 1.6 * @deprecated Since 1.29.0, use {@link #builder()}. @@ -542,14 +542,12 @@ private int skip(final int length) throws IOException { * * @param n The number of bytes to skip. * @return The actual number of bytes skipped. - * @throws IOException if an I/O error has occurred. - * @throws IllegalArgumentException if n < 0. + * @throws IOException Thrown if an I/O error has occurred. + * @throws ArchiveException Thrown if n < 0. */ @Override public long skip(final long n) throws IOException { - if (n < 0) { - throw new IllegalArgumentException("Negative skip length"); - } + ArchiveException.requireNonNegative(n, "Negative skip length"); checkOpen(); final int max = (int) Math.min(n, Integer.MAX_VALUE); int total = 0;
