Repository: commons-compress
Updated Branches:
  refs/heads/master 99eb4cb21 -> 77579145e


Refactor code into a reusable output stream.

Project: http://git-wip-us.apache.org/repos/asf/commons-compress/repo
Commit: http://git-wip-us.apache.org/repos/asf/commons-compress/commit/77579145
Tree: http://git-wip-us.apache.org/repos/asf/commons-compress/tree/77579145
Diff: http://git-wip-us.apache.org/repos/asf/commons-compress/diff/77579145

Branch: refs/heads/master
Commit: 77579145e7f4050dd5f7677f4a427d33cafd450f
Parents: 99eb4cb
Author: Gary Gregory <ggreg...@apache.org>
Authored: Thu Dec 8 18:55:10 2016 -0800
Committer: Gary Gregory <ggreg...@apache.org>
Committed: Thu Dec 8 18:55:10 2016 -0800

----------------------------------------------------------------------
 .../compress/archivers/sevenz/Coders.java       |  9 +----
 .../compress/archivers/sevenz/LZMADecoder.java  | 10 ++---
 .../utils/FlushShieldFilterOutputStream.java    | 40 ++++++++++++++++++++
 3 files changed, 45 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/commons-compress/blob/77579145/src/main/java/org/apache/commons/compress/archivers/sevenz/Coders.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/commons/compress/archivers/sevenz/Coders.java 
b/src/main/java/org/apache/commons/compress/archivers/sevenz/Coders.java
index 8c7f1d2..ac0c319 100644
--- a/src/main/java/org/apache/commons/compress/archivers/sevenz/Coders.java
+++ b/src/main/java/org/apache/commons/compress/archivers/sevenz/Coders.java
@@ -18,7 +18,6 @@
 package org.apache.commons.compress.archivers.sevenz;
 
 import java.io.FilterInputStream;
-import java.io.FilterOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
@@ -32,6 +31,7 @@ import java.util.zip.InflaterInputStream;
 
 import 
org.apache.commons.compress.compressors.bzip2.BZip2CompressorInputStream;
 import 
org.apache.commons.compress.compressors.bzip2.BZip2CompressorOutputStream;
+import org.apache.commons.compress.utils.FlushShieldFilterOutputStream;
 import org.tukaani.xz.ARMOptions;
 import org.tukaani.xz.ARMThumbOptions;
 import org.tukaani.xz.FilterOptions;
@@ -118,12 +118,7 @@ class Coders {
         }
         @Override
         OutputStream encode(final OutputStream out, final Object options) {
-            final FinishableOutputStream fo = opts.getOutputStream(new 
FinishableWrapperOutputStream(out));
-            return new FilterOutputStream(fo) {
-                @Override
-                public void flush() {
-                }
-            };
+            return new FlushShieldFilterOutputStream(opts.getOutputStream(new 
FinishableWrapperOutputStream(out)));
         }
     }
     

http://git-wip-us.apache.org/repos/asf/commons-compress/blob/77579145/src/main/java/org/apache/commons/compress/archivers/sevenz/LZMADecoder.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/commons/compress/archivers/sevenz/LZMADecoder.java 
b/src/main/java/org/apache/commons/compress/archivers/sevenz/LZMADecoder.java
index 78e1fc8..5357a07 100644
--- 
a/src/main/java/org/apache/commons/compress/archivers/sevenz/LZMADecoder.java
+++ 
b/src/main/java/org/apache/commons/compress/archivers/sevenz/LZMADecoder.java
@@ -17,11 +17,11 @@
  */
 package org.apache.commons.compress.archivers.sevenz;
 
-import java.io.FilterOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
 
+import org.apache.commons.compress.utils.FlushShieldFilterOutputStream;
 import org.tukaani.xz.LZMA2Options;
 import org.tukaani.xz.LZMAInputStream;
 import org.tukaani.xz.LZMAOutputStream;
@@ -46,12 +46,8 @@ class LZMADecoder extends CoderBase {
     @Override
     OutputStream encode(final OutputStream out, final Object opts)
         throws IOException {
-        return new FilterOutputStream(new LZMAOutputStream(out, 
getOptions(opts), false)) {
-            @Override
-            public void flush() {
-                // NOOP as LZMAOutputStream throws an exception in flush
-            }
-        };
+        // NOOP as LZMAOutputStream throws an exception in flush
+        return new FlushShieldFilterOutputStream(new LZMAOutputStream(out, 
getOptions(opts), false));
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/commons-compress/blob/77579145/src/main/java/org/apache/commons/compress/utils/FlushShieldFilterOutputStream.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/commons/compress/utils/FlushShieldFilterOutputStream.java
 
b/src/main/java/org/apache/commons/compress/utils/FlushShieldFilterOutputStream.java
new file mode 100644
index 0000000..d087780
--- /dev/null
+++ 
b/src/main/java/org/apache/commons/compress/utils/FlushShieldFilterOutputStream.java
@@ -0,0 +1,40 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.commons.compress.utils;
+
+import java.io.FilterOutputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+
+/**
+ * Re-implements {@link flush()} to do nothing.
+ */
+public class FlushShieldFilterOutputStream extends FilterOutputStream {
+
+    public FlushShieldFilterOutputStream(OutputStream out) {
+        super(out);
+    }
+
+    @Override
+    public void flush() throws IOException {
+        // NO IMPLEMENTATION.
+    }
+
+}

Reply via email to