From 116cb33f3bba2df005d0521b2244ae3f3f74ef25 Mon Sep 17 00:00:00 2001 From: Anton Korneta Date: Fri, 11 Mar 2016 10:18:19 +0200 Subject: [PATCH] CODENVY-26: Fix stream closing before it is direct use --- .../che/plugin/docker/client/DockerConnector.java | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/plugins/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/DockerConnector.java b/plugins/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/DockerConnector.java index a31b40ce0a..592d7e31c1 100644 --- a/plugins/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/DockerConnector.java +++ b/plugins/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/DockerConnector.java @@ -659,17 +659,22 @@ public class DockerConnector { * @apiNote this method implements 1.20 docker API and requires docker not less than 1.8.0 version */ public InputStream getResource(String container, String sourcePath) throws IOException { - try (DockerConnection connection = connectionFactory.openConnection(dockerDaemonUri) - .method("GET") - .path("/containers/" + container + "/archive") - .query("path", sourcePath)) { + DockerConnection connection = null; + try { + connection = connectionFactory.openConnection(dockerDaemonUri) + .method("GET") + .path("/containers/" + container + "/archive") + .query("path", sourcePath); + final DockerResponse response = connection.request(); final int status = response.getStatus(); if (status != OK.getStatusCode()) { throw getDockerException(response); } - return new CloseConnectionInputStream(response.getInputStream(), connection); + } catch (IOException io) { + connection.close(); + throw io; } }