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 2025/01/04 14:55:23 UTC
(commons-compress) branch master updated: Fix Javadoc and names to reflect kibibytes scale
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 445adeaed Fix Javadoc and names to reflect kibibytes scale
445adeaed is described below
commit 445adeaed1889bd0e2d74093bf55f0b0e96498a0
Author: Gary D. Gregory <ga...@gmail.com>
AuthorDate: Sat Jan 4 09:55:16 2025 -0500
Fix Javadoc and names to reflect kibibytes scale
---
src/changes/changes.xml | 4 +++-
.../compress/archivers/sevenz/LZMA2Decoder.java | 6 +++---
.../compress/compressors/lzw/LZWInputStream.java | 22 ++++++++++++++--------
.../compressors/z/ZCompressorInputStream.java | 19 ++++++++++++++++---
.../commons/compress/utils/BitInputStream.java | 4 ++--
5 files changed, 38 insertions(+), 17 deletions(-)
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 32eaca06a..8bb3e72c1 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -62,7 +62,9 @@ The <action> type attribute can be add,update,fix,remove.
<action type="fix" dev="ggregory" due-to="Gary Gregory">CpioArchiveInputStream.read(byte[], int, int) now throws an IOException on a data pad count mismatch.</action>
<action type="fix" dev="ggregory" due-to="Gary Gregory">CpioArchiveInputStream.readNewEntry(boolean) now throws an IOException on a header pad count mismatch.</action>
<action type="fix" dev="ggregory" due-to="Gary Gregory">CpioArchiveInputStream.readOldBinaryEntry(boolean) now throws an IOException on a header pad count mismatch.</action>
- <action type="fix" dev="ggregory" due-to="Gary Gregory">Fix Javadoc in org.apache.commons.compress.archivers.sevenz package to specify kibibyte scale in memory limits.</action>
+ <action type="fix" dev="ggregory" due-to="Gary Gregory">Fix Javadoc and names in the org.apache.commons.compress.archivers.sevenz package to specify kibibyte scale in memory limits.</action>
+ <action type="fix" dev="ggregory" due-to="Gary Gregory">Fix Javadoc and names in the org.apache.commons.compress.compressors.lzw package to specify kibibyte scale in memory limits.</action>
+ <action type="fix" dev="ggregory" due-to="Gary Gregory">Fix Javadoc and names in the org.apache.commons.compress.compressors.z package to specify kibibyte scale in memory limits.</action>
<!-- ADD -->
<action type="add" dev="ggregory" due-to="Gary Gregory">Add GzipParameters.getModificationInstant().</action>
<action type="add" dev="ggregory" due-to="Gary Gregory">Add GzipParameters.setModificationInstant(Instant).</action>
diff --git a/src/main/java/org/apache/commons/compress/archivers/sevenz/LZMA2Decoder.java b/src/main/java/org/apache/commons/compress/archivers/sevenz/LZMA2Decoder.java
index 59c595692..4056f9a4f 100644
--- a/src/main/java/org/apache/commons/compress/archivers/sevenz/LZMA2Decoder.java
+++ b/src/main/java/org/apache/commons/compress/archivers/sevenz/LZMA2Decoder.java
@@ -38,9 +38,9 @@ final class LZMA2Decoder extends AbstractCoder {
final int maxMemoryLimitKiB) throws IOException {
try {
final int dictionarySize = getDictionarySize(coder);
- final int memoryUsageInKb = LZMA2InputStream.getMemoryUsage(dictionarySize);
- if (memoryUsageInKb > maxMemoryLimitKiB) {
- throw new MemoryLimitException(memoryUsageInKb, maxMemoryLimitKiB);
+ final int memoryUsageInKiB = LZMA2InputStream.getMemoryUsage(dictionarySize);
+ if (memoryUsageInKiB > maxMemoryLimitKiB) {
+ throw new MemoryLimitException(memoryUsageInKiB, maxMemoryLimitKiB);
}
return new LZMA2InputStream(in, dictionarySize);
} catch (final IllegalArgumentException ex) { // NOSONAR
diff --git a/src/main/java/org/apache/commons/compress/compressors/lzw/LZWInputStream.java b/src/main/java/org/apache/commons/compress/compressors/lzw/LZWInputStream.java
index 4faf364a7..0aa346854 100644
--- a/src/main/java/org/apache/commons/compress/compressors/lzw/LZWInputStream.java
+++ b/src/main/java/org/apache/commons/compress/compressors/lzw/LZWInputStream.java
@@ -53,6 +53,12 @@ public abstract class LZWInputStream extends CompressorInputStream implements In
private byte[] outputStack;
private int outputStackLocation;
+ /**
+ * Constructs a new instance.
+ *
+ * @param inputStream The underlying input stream.
+ * @param byteOrder the input byte order.
+ */
protected LZWInputStream(final InputStream inputStream, final ByteOrder byteOrder) {
this.in = new BitInputStream(inputStream, byteOrder);
}
@@ -192,23 +198,23 @@ public abstract class LZWInputStream extends CompressorInputStream implements In
* Initializes the arrays based on the maximum code size. First checks that the estimated memory usage is below memoryLimitInKb
*
* @param maxCodeSize maximum code size
- * @param memoryLimitInKb maximum allowed estimated memory usage in Kb
- * @throws MemoryLimitException if estimated memory usage is greater than memoryLimitInKb
+ * @param memoryLimitInKiB maximum allowed estimated memory usage in kibibytes.
+ * @throws MemoryLimitException if estimated memory usage is greater than memoryLimitInKiB
* @throws IllegalArgumentException if {@code maxCodeSize} is not bigger than 0
*/
- protected void initializeTables(final int maxCodeSize, final int memoryLimitInKb) throws MemoryLimitException {
+ protected void initializeTables(final int maxCodeSize, final int memoryLimitInKiB) throws MemoryLimitException {
if (maxCodeSize <= 0) {
throw new IllegalArgumentException("maxCodeSize is " + maxCodeSize + ", must be bigger than 0");
}
- if (memoryLimitInKb > -1) {
+ if (memoryLimitInKiB > -1) {
final int maxTableSize = 1 << maxCodeSize;
// account for potential overflow
- final long memoryUsageInBytes = (long) maxTableSize * 6; // (4 (prefixes) + 1 (characters) +1 (outputStack))
- final long memoryUsageInKb = memoryUsageInBytes >> 10;
+ final long memoryUsageBytes = (long) maxTableSize * 6; // (4 (prefixes) + 1 (characters) +1 (outputStack))
+ final long memoryUsageKiB = memoryUsageBytes >> 10;
- if (memoryUsageInKb > memoryLimitInKb) {
- throw new MemoryLimitException(memoryUsageInKb, memoryLimitInKb);
+ if (memoryUsageKiB > memoryLimitInKiB) {
+ throw new MemoryLimitException(memoryUsageKiB, memoryLimitInKiB);
}
}
initializeTables(maxCodeSize);
diff --git a/src/main/java/org/apache/commons/compress/compressors/z/ZCompressorInputStream.java b/src/main/java/org/apache/commons/compress/compressors/z/ZCompressorInputStream.java
index 04104261f..63ded15e1 100644
--- a/src/main/java/org/apache/commons/compress/compressors/z/ZCompressorInputStream.java
+++ b/src/main/java/org/apache/commons/compress/compressors/z/ZCompressorInputStream.java
@@ -31,6 +31,7 @@ import org.apache.commons.compress.compressors.lzw.LZWInputStream;
* @since 1.7
*/
public class ZCompressorInputStream extends LZWInputStream {
+
private static final int MAGIC_1 = 0x1f;
private static final int MAGIC_2 = 0x9d;
private static final int BLOCK_MODE_MASK = 0x80;
@@ -50,14 +51,26 @@ public class ZCompressorInputStream extends LZWInputStream {
private final boolean blockMode;
private final int maxCodeSize;
-
private long totalCodesRead;
+ /**
+ * Constructs a new instance.
+ *
+ * @param inputStream The underlying input stream.
+ * @throws IOException if an I/O error occurs.
+ */
public ZCompressorInputStream(final InputStream inputStream) throws IOException {
this(inputStream, -1);
}
- public ZCompressorInputStream(final InputStream inputStream, final int memoryLimitInKb) throws IOException {
+ /**
+ * Constructs a new instance.
+ *
+ * @param inputStream The underlying input stream.
+ * @param memoryLimitInKiB maximum allowed estimated memory usage in kibibytes.
+ * @throws IOException if an I/O error occurs.
+ */
+ public ZCompressorInputStream(final InputStream inputStream, final int memoryLimitInKiB) throws IOException {
super(inputStream, ByteOrder.LITTLE_ENDIAN);
final int firstByte = (int) in.readBits(8);
final int secondByte = (int) in.readBits(8);
@@ -70,7 +83,7 @@ public class ZCompressorInputStream extends LZWInputStream {
if (blockMode) {
setClearCode(DEFAULT_CODE_SIZE);
}
- initializeTables(maxCodeSize, memoryLimitInKb);
+ initializeTables(maxCodeSize, memoryLimitInKiB);
clearEntries();
}
diff --git a/src/main/java/org/apache/commons/compress/utils/BitInputStream.java b/src/main/java/org/apache/commons/compress/utils/BitInputStream.java
index cc1f3f4c1..a71d9a58d 100644
--- a/src/main/java/org/apache/commons/compress/utils/BitInputStream.java
+++ b/src/main/java/org/apache/commons/compress/utils/BitInputStream.java
@@ -107,7 +107,7 @@ public class BitInputStream implements Closeable {
*
* @param count
* @return return true, when EOF
- * @throws IOException
+ * @throws IOException if an I/O error occurs.
*/
private boolean ensureCache(final int count) throws IOException {
while (bitsCachedSize < count && bitsCachedSize < 57) {
@@ -173,7 +173,7 @@ public class BitInputStream implements Closeable {
* @param count the number of bits to read, must be a positive number not bigger than 63.
* @return the bits concatenated as a long using the stream's byte order. -1 if the end of the underlying stream has been reached before reading the
* requested number of bits
- * @throws IOException on error
+ * @throws IOException if an I/O error occurs.
*/
public long readBits(final int count) throws IOException {
if (count < 0 || count > MAXIMUM_CACHE_SIZE) {