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 2026/08/09 23:25:10 UTC
(commons-compress) 02/04: TAR private methods now throws the IOException subclass CompressException.
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 599d2ab6905d0708862df6328983dbad33c00f6e
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Sun Aug 9 19:00:02 2026 -0400
TAR private methods now throws the IOException subclass
CompressException.
---
.../commons/compress/archivers/ar/ArArchiveInputStream.java | 9 +++++----
.../apache/commons/compress/archivers/tar/TarArchiveEntry.java | 9 +++++----
.../java/org/apache/commons/compress/utils/ParsingUtilsTest.java | 7 +++----
3 files changed, 13 insertions(+), 12 deletions(-)
diff --git a/src/main/java/org/apache/commons/compress/archivers/ar/ArArchiveInputStream.java b/src/main/java/org/apache/commons/compress/archivers/ar/ArArchiveInputStream.java
index b25c71640..9dc07d1de 100644
--- a/src/main/java/org/apache/commons/compress/archivers/ar/ArArchiveInputStream.java
+++ b/src/main/java/org/apache/commons/compress/archivers/ar/ArArchiveInputStream.java
@@ -25,6 +25,7 @@
import java.util.Arrays;
import java.util.regex.Pattern;
+import org.apache.commons.compress.CompressException;
import org.apache.commons.compress.MemoryLimitException;
import org.apache.commons.compress.archivers.AbstractArchiveBuilder;
import org.apache.commons.compress.archivers.ArchiveException;
@@ -186,15 +187,15 @@ public ArArchiveInputStream(final InputStream inputStream) throws IOException {
this(builder().setInputStream(inputStream));
}
- private int asInt(final byte[] byteArray, final int offset, final int len, final boolean treatBlankAsZero) throws IOException {
+ private int asInt(final byte[] byteArray, final int offset, final int len, final boolean treatBlankAsZero) throws CompressException {
return asInt(byteArray, offset, len, 10, treatBlankAsZero);
}
- private int asInt(final byte[] byteArray, final int offset, final int len, final int base) throws IOException {
+ private int asInt(final byte[] byteArray, final int offset, final int len, final int base) throws CompressException {
return asInt(byteArray, offset, len, base, false);
}
- private int asInt(final byte[] byteArray, final int offset, final int len, final int base, final boolean treatBlankAsZero) throws IOException {
+ private int asInt(final byte[] byteArray, final int offset, final int len, final int base, final boolean treatBlankAsZero) throws CompressException {
final String string = ArchiveUtils.toAsciiString(byteArray, offset, len).trim();
if (string.isEmpty() && treatBlankAsZero) {
return 0;
@@ -202,7 +203,7 @@ private int asInt(final byte[] byteArray, final int offset, final int len, final
return ParsingUtils.parseIntValue(string, base);
}
- private long asLong(final byte[] byteArray, final int offset, final int len) throws IOException {
+ private long asLong(final byte[] byteArray, final int offset, final int len) throws CompressException {
return ParsingUtils.parseLongValue(ArchiveUtils.toAsciiString(byteArray, offset, len).trim());
}
diff --git a/src/main/java/org/apache/commons/compress/archivers/tar/TarArchiveEntry.java b/src/main/java/org/apache/commons/compress/archivers/tar/TarArchiveEntry.java
index 335c66c73..25eb5658a 100644
--- a/src/main/java/org/apache/commons/compress/archivers/tar/TarArchiveEntry.java
+++ b/src/main/java/org/apache/commons/compress/archivers/tar/TarArchiveEntry.java
@@ -46,6 +46,7 @@
import java.util.regex.Pattern;
import java.util.stream.Collectors;
+import org.apache.commons.compress.CompressException;
import org.apache.commons.compress.archivers.ArchiveEntry;
import org.apache.commons.compress.archivers.ArchiveException;
import org.apache.commons.compress.archivers.EntryStreamOffsets;
@@ -764,7 +765,7 @@ private int fill(final int value, final int offset, final byte[] outbuf, final i
return fill((byte) value, offset, outbuf, length);
}
- void fillGNUSparse0xData(final Map<String, String> headers) throws IOException {
+ void fillGNUSparse0xData(final Map<String, String> headers) throws CompressException {
paxGNUSparse = true;
realSize = ParsingUtils.parseIntValue(headers.get(TarGnuSparseKeys.SIZE));
if (headers.containsKey(TarGnuSparseKeys.NAME)) {
@@ -773,7 +774,7 @@ void fillGNUSparse0xData(final Map<String, String> headers) throws IOException {
}
}
- void fillGNUSparse1xData(final Map<String, String> headers) throws IOException {
+ void fillGNUSparse1xData(final Map<String, String> headers) throws CompressException {
paxGNUSparse = true;
paxGNU1XSparse = true;
if (headers.containsKey(TarGnuSparseKeys.NAME)) {
@@ -784,7 +785,7 @@ void fillGNUSparse1xData(final Map<String, String> headers) throws IOException {
}
}
- void fillStarSparseData(final Map<String, String> headers) throws IOException {
+ void fillStarSparseData(final Map<String, String> headers) throws CompressException {
starSparse = true;
if (headers.containsKey(SCHILY_REALSIZE)) {
realSize = ParsingUtils.parseLongValue(headers.get(SCHILY_REALSIZE));
@@ -1632,7 +1633,7 @@ private void processPaxHeader(final String key, final String val) throws IOExcep
* @throws IOException if encountered errors when parsing the numbers.
* @since 1.15
*/
- private void processPaxHeader(final String key, final String val, final Map<String, String> headers) throws IOException {
+ private void processPaxHeader(final String key, final String val, final Map<String, String> headers) throws CompressException {
/*
* The following headers are defined for PAX. charset: cannot use these without changing TarArchiveEntry fields mtime atime ctime
* LIBARCHIVE.creationtime comment gid, gname linkpath size uid,uname SCHILY.devminor, SCHILY.devmajor: don't have setters/getters for those
diff --git a/src/test/java/org/apache/commons/compress/utils/ParsingUtilsTest.java b/src/test/java/org/apache/commons/compress/utils/ParsingUtilsTest.java
index 093a6ac4c..3626d455e 100644
--- a/src/test/java/org/apache/commons/compress/utils/ParsingUtilsTest.java
+++ b/src/test/java/org/apache/commons/compress/utils/ParsingUtilsTest.java
@@ -22,8 +22,7 @@
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
-import java.io.IOException;
-
+import org.apache.commons.compress.CompressException;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.ValueSource;
@@ -37,7 +36,7 @@ class ParsingUtilsTest {
@ParameterizedTest
@ValueSource(strings = {Integer.MIN_VALUE + "1", "x.x", "9e999", "1.1", "one", Integer.MAX_VALUE + "1"})
void testParseIntValueInvalidValues(final String value) {
- assertThrows(IOException.class, () -> ParsingUtils.parseIntValue(value, 10));
+ assertThrows(CompressException.class, () -> ParsingUtils.parseIntValue(value, 10));
}
@ParameterizedTest
@@ -49,7 +48,7 @@ void testParseIntValueValidValues(final String value) throws Exception {
@ParameterizedTest
@ValueSource(strings = {Long.MIN_VALUE + "1", "x.x", "9e999", "1.1", "one", Long.MAX_VALUE + "1"})
void testParseLongValueInvalidValues(final String value) {
- assertThrows(IOException.class, () -> ParsingUtils.parseLongValue(value, 10));
+ assertThrows(CompressException.class, () -> ParsingUtils.parseLongValue(value, 10));
}
@ParameterizedTest