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
The following commit(s) were added to refs/heads/master by this push:
new 22c22a18e Add MemoryLimitException.MemoryLimitException(long, int,
Throwable) and deprecate MemoryLimitException.MemoryLimitException(long, int,
Exception)
22c22a18e is described below
commit 22c22a18ee4baef803a5e96515089c08a9e6072d
Author: Gary D. Gregory <[email protected]>
AuthorDate: Sat Jan 4 10:21:26 2025 -0500
Add MemoryLimitException.MemoryLimitException(long, int, Throwable) and
deprecate MemoryLimitException.MemoryLimitException(long, int,
Exception)
---
src/changes/changes.xml | 1 +
.../apache/commons/compress/MemoryLimitException.java | 16 ++++++++++++++++
.../compressors/lzma/LZMACompressorInputStream.java | 2 +-
.../compress/compressors/xz/XZCompressorInputStream.java | 6 +++---
.../commons/compress/MemoryLimitExceptionTest.java | 10 ++++++++++
5 files changed, 31 insertions(+), 4 deletions(-)
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 8bb3e72c1..9e8b25d03 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -82,6 +82,7 @@ The <action> type attribute can be add,update,fix,remove.
<action type="add" dev="ggregory" due-to="Gary Gregory">Add
GzipCompressorInputStream.Builder.setOnMemberEnd(IOConsumer) to monitor member
parsing.</action>
<action type="add" dev="ggregory" due-to="Gary Gregory">Add PMD check to
default Maven goal.</action>
<action type="add" dev="ggregory" due-to="Gary Gregory">Add
SevenZFile.Builder.setMaxMemoryLimitKiB(int).</action>
+ <action type="add" dev="ggregory" due-to="Gary Gregory">Add
MemoryLimitException.MemoryLimitException(long, int, Throwable) and deprecate
MemoryLimitException.MemoryLimitException(long, int, Exception).</action>
<!-- UPDATE -->
<action type="update" dev="ggregory" due-to="Dependabot, Gary
Gregory">Bump org.apache.commons:commons-parent from 72 to 78 #563, #567, #574,
#582, #587, #595.</action>
<action type="update" dev="ggregory" due-to="Dependabot, Gary
Gregory">Bump com.github.luben:zstd-jni from 1.5.6-4 to 1.5.6-9 #565, #578,
#601, #616, #630.</action>
diff --git
a/src/main/java/org/apache/commons/compress/MemoryLimitException.java
b/src/main/java/org/apache/commons/compress/MemoryLimitException.java
index 7e3026c6a..6527876f1 100644
--- a/src/main/java/org/apache/commons/compress/MemoryLimitException.java
+++ b/src/main/java/org/apache/commons/compress/MemoryLimitException.java
@@ -58,13 +58,29 @@ public class MemoryLimitException extends IOException {
* @param memoryLimitKiB The memory limit in kibibytes (KiB).
* @param cause The cause (which is saved for later retrieval
by the {@link #getCause()} method). (A null value is permitted, and indicates
that
* the cause is nonexistent or unknown.)
+ * @deprecated Use {@link #MemoryLimitException(long, int, Throwable)}.
*/
+ @Deprecated
public MemoryLimitException(final long memoryNeededKiB, final int
memoryLimitKiB, final Exception cause) {
super(buildMessage(memoryNeededKiB, memoryLimitKiB), cause);
this.memoryNeededKiB = memoryNeededKiB;
this.memoryLimitKiB = memoryLimitKiB;
}
+ /**
+ * Constructs a new instance.
+ *
+ * @param memoryNeededKiB The memory needed in kibibytes (KiB).
+ * @param memoryLimitKiB The memory limit in kibibytes (KiB).
+ * @param cause The cause (which is saved for later retrieval
by the {@link #getCause()} method). (A null value is permitted, and indicates
that
+ * the cause is nonexistent or unknown.)
+ */
+ public MemoryLimitException(final long memoryNeededKiB, final int
memoryLimitKiB, final Throwable cause) {
+ super(buildMessage(memoryNeededKiB, memoryLimitKiB), cause);
+ this.memoryNeededKiB = memoryNeededKiB;
+ this.memoryLimitKiB = memoryLimitKiB;
+ }
+
/**
* Gets the memory limit in kibibytes (KiB).
*
diff --git
a/src/main/java/org/apache/commons/compress/compressors/lzma/LZMACompressorInputStream.java
b/src/main/java/org/apache/commons/compress/compressors/lzma/LZMACompressorInputStream.java
index 834330523..48e5b3cd2 100644
---
a/src/main/java/org/apache/commons/compress/compressors/lzma/LZMACompressorInputStream.java
+++
b/src/main/java/org/apache/commons/compress/compressors/lzma/LZMACompressorInputStream.java
@@ -76,7 +76,7 @@ public class LZMACompressorInputStream extends
CompressorInputStream implements
in = new LZMAInputStream(countingStream =
BoundedInputStream.builder().setInputStream(inputStream).get(), memoryLimitKiB);
} catch (final org.tukaani.xz.MemoryLimitException e) {
// convert to commons-compress exception
- throw new MemoryLimitException(e.getMemoryNeeded(),
e.getMemoryLimit(), e);
+ throw new MemoryLimitException(e.getMemoryNeeded(),
e.getMemoryLimit(), (Throwable) e);
}
}
diff --git
a/src/main/java/org/apache/commons/compress/compressors/xz/XZCompressorInputStream.java
b/src/main/java/org/apache/commons/compress/compressors/xz/XZCompressorInputStream.java
index 0b2a40efb..9b7a88ef9 100644
---
a/src/main/java/org/apache/commons/compress/compressors/xz/XZCompressorInputStream.java
+++
b/src/main/java/org/apache/commons/compress/compressors/xz/XZCompressorInputStream.java
@@ -134,7 +134,7 @@ public class XZCompressorInputStream extends
CompressorInputStream implements In
count(ret == -1 ? -1 : 1);
return ret;
} catch (final org.tukaani.xz.MemoryLimitException e) {
- throw new MemoryLimitException(e.getMemoryNeeded(),
e.getMemoryLimit(), e);
+ throw new MemoryLimitException(e.getMemoryNeeded(),
e.getMemoryLimit(), (Throwable) e);
}
}
@@ -149,7 +149,7 @@ public class XZCompressorInputStream extends
CompressorInputStream implements In
return ret;
} catch (final org.tukaani.xz.MemoryLimitException e) {
// convert to commons-compress MemoryLimtException
- throw new MemoryLimitException(e.getMemoryNeeded(),
e.getMemoryLimit(), e);
+ throw new MemoryLimitException(e.getMemoryNeeded(),
e.getMemoryLimit(), (Throwable) e);
}
}
@@ -159,7 +159,7 @@ public class XZCompressorInputStream extends
CompressorInputStream implements In
return org.apache.commons.io.IOUtils.skip(in, n);
} catch (final org.tukaani.xz.MemoryLimitException e) {
// convert to commons-compress MemoryLimtException
- throw new MemoryLimitException(e.getMemoryNeeded(),
e.getMemoryLimit(), e);
+ throw new MemoryLimitException(e.getMemoryNeeded(),
e.getMemoryLimit(), (Throwable) e);
}
}
}
diff --git
a/src/test/java/org/apache/commons/compress/MemoryLimitExceptionTest.java
b/src/test/java/org/apache/commons/compress/MemoryLimitExceptionTest.java
index e9884db0a..ca942ade2 100644
--- a/src/test/java/org/apache/commons/compress/MemoryLimitExceptionTest.java
+++ b/src/test/java/org/apache/commons/compress/MemoryLimitExceptionTest.java
@@ -34,6 +34,16 @@ public class MemoryLimitExceptionTest {
@Test
public void testAccessorsCause() {
final IOException ioe = new IOException();
+ final MemoryLimitException e = new MemoryLimitException(1, 2,
(Throwable) ioe);
+ assertEquals(1, e.getMemoryNeededInKb());
+ assertEquals(2, e.getMemoryLimitInKb());
+ assertSame(ioe, e.getCause());
+ }
+
+ @Test
+ public void testAccessorsCauseDepreacted() {
+ final IOException ioe = new IOException();
+ @SuppressWarnings("deprecation")
final MemoryLimitException e = new MemoryLimitException(1, 2, ioe);
assertEquals(1, e.getMemoryNeededInKb());
assertEquals(2, e.getMemoryLimitInKb());