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();
         }
     }
 

Reply via email to