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)
