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
commit 864a50e9e73b4d1282785c433a13897f5ac91237 Author: Gary D. Gregory <garydgreg...@gmail.com> AuthorDate: Mon Dec 16 16:32:06 2024 -0500 Internal refactoring --- .../compress/CompressFilterOutputStream.java | 26 ++++++++++++++++++++ .../compress/archivers/ArchiveOutputStream.java | 28 ---------------------- .../deflate/DeflateCompressorOutputStream.java | 1 + .../lz4/BlockLZ4CompressorOutputStream.java | 6 ++--- .../lz4/FramedLZ4CompressorOutputStream.java | 6 ++--- .../pack200/Pack200CompressorOutputStream.java | 5 ++-- .../snappy/SnappyCompressorOutputStream.java | 6 ++--- 7 files changed, 35 insertions(+), 43 deletions(-) diff --git a/src/main/java/org/apache/commons/compress/CompressFilterOutputStream.java b/src/main/java/org/apache/commons/compress/CompressFilterOutputStream.java index f3e1bcd0c..17cc30985 100644 --- a/src/main/java/org/apache/commons/compress/CompressFilterOutputStream.java +++ b/src/main/java/org/apache/commons/compress/CompressFilterOutputStream.java @@ -56,6 +56,13 @@ public abstract class CompressFilterOutputStream<T extends OutputStream> extends * Whether this instance was successfully closed. */ private final AtomicBoolean closed = new AtomicBoolean(); + /** + * Whether this instance was successfully finished. + * <p> + * The state transition usually is open, to finished, to closed. + * </p> + */ + private boolean finished; /** * Constructs a new instance without a backing {@link OutputStream}. @@ -96,6 +103,15 @@ public abstract class CompressFilterOutputStream<T extends OutputStream> extends } } + /** + * Finishes the addition of entries to this stream, without closing it. Additional data can be written, if the format supports it. + * + * @throws IOException Maybe thrown by subclasses if the user forgets to close the entry. + */ + public void finish() throws IOException { + finished = true; + } + /** * Tests whether this instance was successfully closed. * @@ -106,6 +122,16 @@ public abstract class CompressFilterOutputStream<T extends OutputStream> extends return closed.get(); } + /** + * Tests whether this instance was successfully finished. + * + * @return whether this instance was successfully finished. + * @since 1.27.0 + */ + protected boolean isFinished() { + return finished; + } + /** * Gets the underlying output stream. * diff --git a/src/main/java/org/apache/commons/compress/archivers/ArchiveOutputStream.java b/src/main/java/org/apache/commons/compress/archivers/ArchiveOutputStream.java index d394730aa..83c2e28be 100644 --- a/src/main/java/org/apache/commons/compress/archivers/ArchiveOutputStream.java +++ b/src/main/java/org/apache/commons/compress/archivers/ArchiveOutputStream.java @@ -60,14 +60,6 @@ public abstract class ArchiveOutputStream<E extends ArchiveEntry> extends Compre /** Holds the number of bytes written to this stream. */ private long bytesWritten; - /** - * Whether this instance was successfully finished. - * <p> - * The state transition usually is open, to finished, to closed. - * </p> - */ - private boolean finished; - /** * Constructs a new instance without a backing OutputStream. * <p> @@ -178,16 +170,6 @@ public abstract class ArchiveOutputStream<E extends ArchiveEntry> extends Compre return createArchiveEntry(inputPath.toFile(), entryName); } - /** - * Finishes the addition of entries to this stream, without closing it. Additional data can be written, if the format supports it. - * - * @throws IOException Maybe thrown by subclasses if the user forgets to close the entry. - */ - @SuppressWarnings("unused") // for subclasses - public void finish() throws IOException { - finished = true; - } - /** * Gets the current number of bytes written to this stream. * @@ -209,16 +191,6 @@ public abstract class ArchiveOutputStream<E extends ArchiveEntry> extends Compre return (int) bytesWritten; } - /** - * Tests whether this instance was successfully finished. - * - * @return whether this instance was successfully finished. - * @since 1.27.0 - */ - protected boolean isFinished() { - return finished; - } - /** * Writes the headers for an archive entry to the output stream. The caller must then write the content to the stream and call {@link #closeArchiveEntry()} * to complete the process. diff --git a/src/main/java/org/apache/commons/compress/compressors/deflate/DeflateCompressorOutputStream.java b/src/main/java/org/apache/commons/compress/compressors/deflate/DeflateCompressorOutputStream.java index 90c5f0c8d..d33b5fd84 100644 --- a/src/main/java/org/apache/commons/compress/compressors/deflate/DeflateCompressorOutputStream.java +++ b/src/main/java/org/apache/commons/compress/compressors/deflate/DeflateCompressorOutputStream.java @@ -79,6 +79,7 @@ public class DeflateCompressorOutputStream extends CompressorOutputStream<Deflat @SuppressWarnings("resource") // instance variable access public void finish() throws IOException { out().finish(); + super.finish(); } /** diff --git a/src/main/java/org/apache/commons/compress/compressors/lz4/BlockLZ4CompressorOutputStream.java b/src/main/java/org/apache/commons/compress/compressors/lz4/BlockLZ4CompressorOutputStream.java index 0edfbe397..3c5969008 100644 --- a/src/main/java/org/apache/commons/compress/compressors/lz4/BlockLZ4CompressorOutputStream.java +++ b/src/main/java/org/apache/commons/compress/compressors/lz4/BlockLZ4CompressorOutputStream.java @@ -187,8 +187,6 @@ public class BlockLZ4CompressorOutputStream extends CompressorOutputStream<Outpu // used in one-arg write method private final byte[] oneByte = new byte[1]; - private boolean finished; - private final Deque<Pair> pairs = new LinkedList<>(); // keeps track of the last window-size bytes (64k) in order to be @@ -348,9 +346,9 @@ public class BlockLZ4CompressorOutputStream extends CompressorOutputStream<Outpu * @throws IOException if an error occurs */ public void finish() throws IOException { - if (!finished) { + if (!isFinished()) { compressor.finish(); - finished = true; + super.finish(); } } diff --git a/src/main/java/org/apache/commons/compress/compressors/lz4/FramedLZ4CompressorOutputStream.java b/src/main/java/org/apache/commons/compress/compressors/lz4/FramedLZ4CompressorOutputStream.java index 992f1aa9b..437f1034b 100644 --- a/src/main/java/org/apache/commons/compress/compressors/lz4/FramedLZ4CompressorOutputStream.java +++ b/src/main/java/org/apache/commons/compress/compressors/lz4/FramedLZ4CompressorOutputStream.java @@ -150,8 +150,6 @@ public class FramedLZ4CompressorOutputStream extends CompressorOutputStream<Outp private final byte[] blockData; private final Parameters params; - private boolean finished; - // used for frame header checksum and content checksum, if requested private final org.apache.commons.codec.digest.XXHash32 contentHash = new org.apache.commons.codec.digest.XXHash32(); // used for block checksum, if requested @@ -219,10 +217,10 @@ public class FramedLZ4CompressorOutputStream extends CompressorOutputStream<Outp * @throws IOException if an error occurs */ public void finish() throws IOException { - if (!finished) { + if (!isFinished()) { flushBlock(); writeTrailer(); - finished = true; + super.finish(); } } diff --git a/src/main/java/org/apache/commons/compress/compressors/pack200/Pack200CompressorOutputStream.java b/src/main/java/org/apache/commons/compress/compressors/pack200/Pack200CompressorOutputStream.java index f49e00f32..d26b88d90 100644 --- a/src/main/java/org/apache/commons/compress/compressors/pack200/Pack200CompressorOutputStream.java +++ b/src/main/java/org/apache/commons/compress/compressors/pack200/Pack200CompressorOutputStream.java @@ -34,7 +34,6 @@ import org.apache.commons.compress.java.util.jar.Pack200; * @since 1.3 */ public class Pack200CompressorOutputStream extends CompressorOutputStream<OutputStream> { - private boolean finished; private final AbstractStreamBridge abstractStreamBridge; private final Map<String, String> properties; @@ -98,8 +97,8 @@ public class Pack200CompressorOutputStream extends CompressorOutputStream<Output } public void finish() throws IOException { - if (!finished) { - finished = true; + if (!isFinished()) { + super.finish(); final Pack200.Packer p = Pack200.newPacker(); if (properties != null) { p.properties().putAll(properties); diff --git a/src/main/java/org/apache/commons/compress/compressors/snappy/SnappyCompressorOutputStream.java b/src/main/java/org/apache/commons/compress/compressors/snappy/SnappyCompressorOutputStream.java index 745810bc6..243515ae8 100644 --- a/src/main/java/org/apache/commons/compress/compressors/snappy/SnappyCompressorOutputStream.java +++ b/src/main/java/org/apache/commons/compress/compressors/snappy/SnappyCompressorOutputStream.java @@ -104,8 +104,6 @@ public class SnappyCompressorOutputStream extends CompressorOutputStream<OutputS // used in one-arg write method private final byte[] oneByte = new byte[1]; - private boolean finished; - /** * Constructor using the default block size of 32k. * @@ -170,9 +168,9 @@ public class SnappyCompressorOutputStream extends CompressorOutputStream<OutputS * @throws IOException if an error occurs */ public void finish() throws IOException { - if (!finished) { + if (!isFinished()) { compressor.finish(); - finished = true; + super.finish(); } }