Repository: jclouds
Updated Branches:
  refs/heads/master 66dab8d96 -> 1d218b170


JCLOUDS-417: Remove ConsumeOnCloseInputStream

ConsumeOnCloseInputStream can potentially perform a copy in finalize()
if the stream was not closed properly.


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

Branch: refs/heads/master
Commit: afc0ca557da9adb24da7f520c38457f18ad11c63
Parents: 66dab8d
Author: Tom Manville <[email protected]>
Authored: Thu Jan 2 14:58:21 2014 -0800
Committer: Andrew Gaul <[email protected]>
Committed: Thu Jul 10 20:59:09 2014 -0700

----------------------------------------------------------------------
 .../BaseHttpCommandExecutorService.java         | 41 --------------------
 .../JavaUrlHttpCommandExecutorService.java      |  2 +-
 .../ApacheHCHttpCommandExecutorService.java     |  2 +-
 3 files changed, 2 insertions(+), 43 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jclouds/blob/afc0ca55/core/src/main/java/org/jclouds/http/internal/BaseHttpCommandExecutorService.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/jclouds/http/internal/BaseHttpCommandExecutorService.java
 
b/core/src/main/java/org/jclouds/http/internal/BaseHttpCommandExecutorService.java
index dfb11ab..270a217 100644
--- 
a/core/src/main/java/org/jclouds/http/internal/BaseHttpCommandExecutorService.java
+++ 
b/core/src/main/java/org/jclouds/http/internal/BaseHttpCommandExecutorService.java
@@ -18,15 +18,11 @@ package org.jclouds.http.internal;
 
 import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.common.base.Throwables.propagate;
-import static com.google.common.io.ByteStreams.copy;
-import static com.google.common.io.ByteStreams.nullOutputStream;
 import static 
org.jclouds.http.HttpUtils.checkRequestHasContentLengthOrChunkedEncoding;
 import static org.jclouds.http.HttpUtils.wirePayloadIfEnabled;
 import static org.jclouds.util.Throwables2.getFirstThrowableOfType;
 
-import java.io.FilterInputStream;
 import java.io.IOException;
-import java.io.InputStream;
 import java.util.concurrent.Callable;
 
 import javax.annotation.Resource;
@@ -81,43 +77,6 @@ public abstract class BaseHttpCommandExecutorService<Q> 
implements HttpCommandEx
       this.wire = checkNotNull(wire, "wire");
    }
 
-   public static InputStream consumeOnClose(InputStream in) {
-      return new ConsumeOnCloseInputStream(in);
-   }
-
-   /**
-    * Ensures the content is always flushed.
-    * 
-    */
-   static class ConsumeOnCloseInputStream extends FilterInputStream {
-
-      protected ConsumeOnCloseInputStream(InputStream in) {
-         super(in);
-      }
-
-      boolean closed;
-
-      @Override
-      public void close() throws IOException {
-         if (!closed) {
-            try {
-               copy(this, nullOutputStream());
-            } catch (IOException e) {
-            } finally {
-               closed = true;
-               super.close();
-            }
-         }
-      }
-
-      @Override
-      protected void finalize() throws Throwable {
-         close();
-         super.finalize();
-      }
-
-   }
-
    @Override
    public HttpResponse invoke(HttpCommand command) {
       HttpResponse response = null;

http://git-wip-us.apache.org/repos/asf/jclouds/blob/afc0ca55/core/src/main/java/org/jclouds/http/internal/JavaUrlHttpCommandExecutorService.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/jclouds/http/internal/JavaUrlHttpCommandExecutorService.java
 
b/core/src/main/java/org/jclouds/http/internal/JavaUrlHttpCommandExecutorService.java
index ac49f8f..8d665fe 100644
--- 
a/core/src/main/java/org/jclouds/http/internal/JavaUrlHttpCommandExecutorService.java
+++ 
b/core/src/main/java/org/jclouds/http/internal/JavaUrlHttpCommandExecutorService.java
@@ -100,7 +100,7 @@ public class JavaUrlHttpCommandExecutorService extends 
BaseHttpCommandExecutorSe
       HttpResponse.Builder<?> builder = HttpResponse.builder();
       InputStream in = null;
       try {
-         in = consumeOnClose(connection.getInputStream());
+         in = connection.getInputStream();
       } catch (IOException e) {
          in = bufferAndCloseStream(connection.getErrorStream());
       } catch (RuntimeException e) {

http://git-wip-us.apache.org/repos/asf/jclouds/blob/afc0ca55/drivers/apachehc/src/main/java/org/jclouds/http/apachehc/ApacheHCHttpCommandExecutorService.java
----------------------------------------------------------------------
diff --git 
a/drivers/apachehc/src/main/java/org/jclouds/http/apachehc/ApacheHCHttpCommandExecutorService.java
 
b/drivers/apachehc/src/main/java/org/jclouds/http/apachehc/ApacheHCHttpCommandExecutorService.java
index 381c769..fac5592 100644
--- 
a/drivers/apachehc/src/main/java/org/jclouds/http/apachehc/ApacheHCHttpCommandExecutorService.java
+++ 
b/drivers/apachehc/src/main/java/org/jclouds/http/apachehc/ApacheHCHttpCommandExecutorService.java
@@ -83,7 +83,7 @@ public class ApacheHCHttpCommandExecutorService extends 
BaseHttpCommandExecutorS
       Payload payload = null;
       if (apacheResponse.getEntity() != null)
          try {
-            payload = 
Payloads.newInputStreamPayload(consumeOnClose(apacheResponse.getEntity().getContent()));
+            payload = 
Payloads.newInputStreamPayload(apacheResponse.getEntity().getContent());
             if (apacheResponse.getEntity().getContentLength() >= 0)
                
payload.getContentMetadata().setContentLength(apacheResponse.getEntity().getContentLength());
             if (apacheResponse.getEntity().getContentType() != null)

Reply via email to