summaryrefslogtreecommitdiffstats
path: root/openstack-client-connectors/resteasy-connector/src/main/java/com/woorea/openstack/connector/RESTEasyInputStream.java
diff options
context:
space:
mode:
Diffstat (limited to 'openstack-client-connectors/resteasy-connector/src/main/java/com/woorea/openstack/connector/RESTEasyInputStream.java')
-rw-r--r--openstack-client-connectors/resteasy-connector/src/main/java/com/woorea/openstack/connector/RESTEasyInputStream.java37
1 files changed, 37 insertions, 0 deletions
diff --git a/openstack-client-connectors/resteasy-connector/src/main/java/com/woorea/openstack/connector/RESTEasyInputStream.java b/openstack-client-connectors/resteasy-connector/src/main/java/com/woorea/openstack/connector/RESTEasyInputStream.java
new file mode 100644
index 0000000..913a500
--- /dev/null
+++ b/openstack-client-connectors/resteasy-connector/src/main/java/com/woorea/openstack/connector/RESTEasyInputStream.java
@@ -0,0 +1,37 @@
+package com.woorea.openstack.connector;
+
+import java.io.FilterInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.SocketException;
+
+import org.jboss.resteasy.client.ClientExecutor;
+
+
+public class RESTEasyInputStream extends FilterInputStream {
+
+ protected ClientExecutor clientExecutor;
+
+ public RESTEasyInputStream(InputStream inputStream, ClientExecutor clientExecutor) {
+ super(inputStream);
+ this.clientExecutor = clientExecutor;
+ }
+
+ @Override
+ public void close() throws IOException {
+ try {
+ clientExecutor.close();
+ } catch (Exception e) {
+ // Silently skip errors in the socket close errors
+ }
+
+ try {
+ super.close();
+ } catch (SocketException e) {
+ // We expect this exception because the socket is closed
+ } catch (IllegalStateException e) {
+ // We expect this exception because the socket is closed (httpclient 4.2)
+ }
+ }
+
+}