You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@knox.apache.org by kr...@apache.org on 2018/10/30 18:50:49 UTC

knox git commit: KNOX-1535 - Remove custom gzip helper stream - use commons-compress

Repository: knox
Updated Branches:
  refs/heads/master cb6bbb582 -> 33fc9e93b


KNOX-1535 - Remove custom gzip helper stream - use commons-compress

Signed-off-by: Kevin Risden <kr...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/knox/repo
Commit: http://git-wip-us.apache.org/repos/asf/knox/commit/33fc9e93
Tree: http://git-wip-us.apache.org/repos/asf/knox/tree/33fc9e93
Diff: http://git-wip-us.apache.org/repos/asf/knox/diff/33fc9e93

Branch: refs/heads/master
Commit: 33fc9e93b11b68c98961b76bc8c498992cf7128f
Parents: cb6bbb5
Author: Kevin Risden <kr...@apache.org>
Authored: Fri Oct 19 12:52:55 2018 -0400
Committer: Kevin Risden <kr...@apache.org>
Committed: Tue Oct 30 14:50:33 2018 -0400

----------------------------------------------------------------------
 gateway-provider-rewrite/pom.xml                |  4 +
 .../filter/rewrite/impl/UrlRewriteResponse.java | 78 +-------------------
 pom.xml                                         |  6 ++
 3 files changed, 12 insertions(+), 76 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/knox/blob/33fc9e93/gateway-provider-rewrite/pom.xml
----------------------------------------------------------------------
diff --git a/gateway-provider-rewrite/pom.xml b/gateway-provider-rewrite/pom.xml
index 200e43a..a48d35f 100644
--- a/gateway-provider-rewrite/pom.xml
+++ b/gateway-provider-rewrite/pom.xml
@@ -56,6 +56,10 @@
         </dependency>
         <dependency>
             <groupId>org.apache.commons</groupId>
+            <artifactId>commons-compress</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.commons</groupId>
             <artifactId>commons-digester3</artifactId>
         </dependency>
         <dependency>

http://git-wip-us.apache.org/repos/asf/knox/blob/33fc9e93/gateway-provider-rewrite/src/main/java/org/apache/knox/gateway/filter/rewrite/impl/UrlRewriteResponse.java
----------------------------------------------------------------------
diff --git a/gateway-provider-rewrite/src/main/java/org/apache/knox/gateway/filter/rewrite/impl/UrlRewriteResponse.java b/gateway-provider-rewrite/src/main/java/org/apache/knox/gateway/filter/rewrite/impl/UrlRewriteResponse.java
index 6c1ee3d..93e9f07 100644
--- a/gateway-provider-rewrite/src/main/java/org/apache/knox/gateway/filter/rewrite/impl/UrlRewriteResponse.java
+++ b/gateway-provider-rewrite/src/main/java/org/apache/knox/gateway/filter/rewrite/impl/UrlRewriteResponse.java
@@ -17,6 +17,7 @@
  */
 package org.apache.knox.gateway.filter.rewrite.impl;
 
+import org.apache.commons.compress.compressors.gzip.GzipCompressorInputStream;
 import org.apache.knox.gateway.filter.GatewayResponseWrapper;
 import org.apache.knox.gateway.filter.ResponseStreamer;
 import org.apache.knox.gateway.filter.rewrite.api.UrlRewriteFilterContentDescriptor;
@@ -53,7 +54,6 @@ import java.util.Collections;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
-import java.util.zip.GZIPInputStream;
 import java.util.zip.GZIPOutputStream;
 
 import static org.apache.knox.gateway.filter.rewrite.impl.UrlRewriteUtil.getRewriteFilterConfig;
@@ -180,7 +180,7 @@ public class UrlRewriteResponse extends GatewayResponseWrapper implements Params
 
       final InputStream unFilteredStream;
       if(isGzip) {
-        unFilteredStream = new GZIPInputStream(new GZIPInputStreamHelperInputStream(inBuffer), STREAM_BUFFER_SIZE);
+        unFilteredStream = new GzipCompressorInputStream(inBuffer, true);
       } else {
         unFilteredStream = inBuffer;
       }
@@ -340,78 +340,4 @@ public class UrlRewriteResponse extends GatewayResponseWrapper implements Params
       xForwardedPort = Integer.toString( request.getLocalPort() );
     }
   }
-
-  /**
-   * This InputStream wraps another InputStream to override the available() behavior. This is to fulfill
-   * GZIPInputStream's expectation of the available() method, for which the behavior actually varies across InputStream
-   * implementations; in some cases, it causes GZIPInputStream to terminate prematurely, resulting in partial reads.
-   *
-   * Guaranteeing that the available() method always returns a value greater than zero forces the GZIPInputStream to
-   * continue reading from the underlying InputStream until it actually reaches the end of the stream.
-   */
-  private static class GZIPInputStreamHelperInputStream extends InputStream {
-
-    private InputStream delegate;
-
-    GZIPInputStreamHelperInputStream(InputStream delegate) {
-      this.delegate = delegate;
-    }
-
-    /**
-     * @return The delegate's available() result if it's > 0, otherwise 1.
-     */
-    @Override
-    public int available() throws IOException {
-      int available = delegate.available();
-      if (available <= 1) {
-        available = 1;
-      }
-      return available;
-    }
-
-    @Override
-    public int read() throws IOException {
-      return delegate.read();
-    }
-
-    @Override
-    public int read(byte[] b) throws IOException {
-      return delegate.read(b);
-    }
-
-    @Override
-    public int read(byte[] b, int off, int len) throws IOException {
-      return delegate.read(b, off, len);
-    }
-
-    @Override
-    public long skip(long n) throws IOException {
-      return delegate.skip(n);
-    }
-
-    @Override
-    public void close() throws IOException {
-      delegate.close();
-    }
-
-    @Override
-    public synchronized void mark(int readlimit) {
-      if (markSupported()) {
-        delegate.mark(readlimit);
-      }
-    }
-
-    @Override
-    public synchronized void reset() throws IOException {
-      if (markSupported()) {
-        delegate.reset();
-      }
-    }
-
-    @Override
-    public boolean markSupported() {
-      return delegate.markSupported();
-    }
-  }
-
 }

http://git-wip-us.apache.org/repos/asf/knox/blob/33fc9e93/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index a8649b8..017acdd 100644
--- a/pom.xml
+++ b/pom.xml
@@ -143,6 +143,7 @@
         <commons-cli.version>1.4</commons-cli.version>
         <commons-codec.version>1.11</commons-codec.version>
         <commons-collections.version>3.2.2</commons-collections.version>
+        <commons-compress.version>1.18</commons-compress.version>
         <commons-configuration.version>1.10</commons-configuration.version>
         <commons-digester3.version>3.2</commons-digester3.version>
         <commons-io.version>2.6</commons-io.version>
@@ -1230,6 +1231,11 @@
                 <version>${commons-collections.version}</version>
             </dependency>
             <dependency>
+                <groupId>org.apache.commons</groupId>
+                <artifactId>commons-compress</artifactId>
+                <version>${commons-compress.version}</version>
+            </dependency>
+            <dependency>
                 <groupId>commons-configuration</groupId>
                 <artifactId>commons-configuration</artifactId>
                 <version>${commons-configuration.version}</version>