From 93bff938b1f026e79191ba790fac48d18cfe2a1d Mon Sep 17 00:00:00 2001 From: Marcus Linke Date: Fri, 21 Aug 2015 20:50:46 +0200 Subject: [PATCH 1/4] fix issue #303 --- .../dockerjava/api/command/DockerCmd.java | 5 ++-- .../core/command/AbstrAsyncDockerCmd.java | 2 +- .../core/command/AbstrDockerCmd.java | 2 +- .../core/command/BuildImageCmdImpl.java | 8 +++++-- .../jaxrs/AbstrAsyncDockerCmdExec.java | 6 +---- .../jaxrs/AbstrSyncDockerCmdExec.java | 24 +++++++------------ 6 files changed, 20 insertions(+), 27 deletions(-) diff --git a/src/main/java/com/github/dockerjava/api/command/DockerCmd.java b/src/main/java/com/github/dockerjava/api/command/DockerCmd.java index a4e7e3a5e..49a0b1200 100644 --- a/src/main/java/com/github/dockerjava/api/command/DockerCmd.java +++ b/src/main/java/com/github/dockerjava/api/command/DockerCmd.java @@ -1,7 +1,8 @@ package com.github.dockerjava.api.command; -import java.io.Closeable; +public interface DockerCmd extends AutoCloseable { -public interface DockerCmd extends Closeable { + @Override + public void close(); } \ No newline at end of file diff --git a/src/main/java/com/github/dockerjava/core/command/AbstrAsyncDockerCmd.java b/src/main/java/com/github/dockerjava/core/command/AbstrAsyncDockerCmd.java index 04311e8c1..c49c0404c 100644 --- a/src/main/java/com/github/dockerjava/core/command/AbstrAsyncDockerCmd.java +++ b/src/main/java/com/github/dockerjava/core/command/AbstrAsyncDockerCmd.java @@ -25,7 +25,7 @@ public > T exec(T resultCallback) { } @Override - public void close() throws IOException { + public void close() { } } diff --git a/src/main/java/com/github/dockerjava/core/command/AbstrDockerCmd.java b/src/main/java/com/github/dockerjava/core/command/AbstrDockerCmd.java index c4fedac58..3594f960f 100644 --- a/src/main/java/com/github/dockerjava/core/command/AbstrDockerCmd.java +++ b/src/main/java/com/github/dockerjava/core/command/AbstrDockerCmd.java @@ -34,7 +34,7 @@ public RES_T exec() throws DockerException { } @Override - public void close() throws IOException { + public void close() { } protected String registryAuth(AuthConfig authConfig) { diff --git a/src/main/java/com/github/dockerjava/core/command/BuildImageCmdImpl.java b/src/main/java/com/github/dockerjava/core/command/BuildImageCmdImpl.java index 56ce8f78f..30857485b 100644 --- a/src/main/java/com/github/dockerjava/core/command/BuildImageCmdImpl.java +++ b/src/main/java/com/github/dockerjava/core/command/BuildImageCmdImpl.java @@ -197,10 +197,14 @@ public BuildImageCmd withBuildAuthConfigs(AuthConfigurations authConfigs) { } @Override - public void close() throws IOException { + public void close() { super.close(); - tarInputStream.close(); + try { + tarInputStream.close(); + } catch (IOException e) { + throw new RuntimeException(e); + } } @Override diff --git a/src/main/java/com/github/dockerjava/jaxrs/AbstrAsyncDockerCmdExec.java b/src/main/java/com/github/dockerjava/jaxrs/AbstrAsyncDockerCmdExec.java index cb91a56e7..c8cc954f3 100644 --- a/src/main/java/com/github/dockerjava/jaxrs/AbstrAsyncDockerCmdExec.java +++ b/src/main/java/com/github/dockerjava/jaxrs/AbstrAsyncDockerCmdExec.java @@ -50,11 +50,7 @@ public void onError(Throwable throwable) { @Override public void onComplete() { resultCallback.onComplete(); - try { - command.close(); - } catch (IOException e) { - throw new RuntimeException(e); - } + command.close(); } }; diff --git a/src/main/java/com/github/dockerjava/jaxrs/AbstrSyncDockerCmdExec.java b/src/main/java/com/github/dockerjava/jaxrs/AbstrSyncDockerCmdExec.java index 7e26c519e..8845ec36d 100644 --- a/src/main/java/com/github/dockerjava/jaxrs/AbstrSyncDockerCmdExec.java +++ b/src/main/java/com/github/dockerjava/jaxrs/AbstrSyncDockerCmdExec.java @@ -19,25 +19,17 @@ public AbstrSyncDockerCmdExec(WebTarget baseResource) { @Override public RES_T exec(CMD_T command) { // this hack works because of ResponseStatusExceptionFilter - RES_T result; - try { - result = execute(command); - - } catch (ProcessingException e) { - if (e.getCause() instanceof DockerException) { - throw (DockerException) e.getCause(); - } else { - throw e; - } - } finally { + try(CMD_T cmd = command) { try { - command.close(); - } catch (IOException e) { - throw new RuntimeException(e); + return execute(cmd); + } catch (ProcessingException e) { + if (e.getCause() instanceof DockerException) { + throw (DockerException) e.getCause(); + } else { + throw e; + } } } - - return result; } protected abstract RES_T execute(CMD_T command); From 1aa5deb584e4033dbee734720736efb43a84b4b6 Mon Sep 17 00:00:00 2001 From: Marcus Linke Date: Fri, 21 Aug 2015 21:29:57 +0200 Subject: [PATCH 2/4] Use Closeable instead of AutoCloseable --- .../java/com/github/dockerjava/api/command/DockerCmd.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/github/dockerjava/api/command/DockerCmd.java b/src/main/java/com/github/dockerjava/api/command/DockerCmd.java index 49a0b1200..eafe34ae5 100644 --- a/src/main/java/com/github/dockerjava/api/command/DockerCmd.java +++ b/src/main/java/com/github/dockerjava/api/command/DockerCmd.java @@ -1,6 +1,8 @@ package com.github.dockerjava.api.command; -public interface DockerCmd extends AutoCloseable { +import java.io.Closeable; + +public interface DockerCmd extends Closeable { @Override public void close(); From 18893021a4b5e8162ede2de6138b4335fac83e67 Mon Sep 17 00:00:00 2001 From: Marcus Linke Date: Fri, 21 Aug 2015 21:31:17 +0200 Subject: [PATCH 3/4] Fomat source --- .../com/github/dockerjava/jaxrs/AbstrSyncDockerCmdExec.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/github/dockerjava/jaxrs/AbstrSyncDockerCmdExec.java b/src/main/java/com/github/dockerjava/jaxrs/AbstrSyncDockerCmdExec.java index 8845ec36d..016184053 100644 --- a/src/main/java/com/github/dockerjava/jaxrs/AbstrSyncDockerCmdExec.java +++ b/src/main/java/com/github/dockerjava/jaxrs/AbstrSyncDockerCmdExec.java @@ -19,7 +19,7 @@ public AbstrSyncDockerCmdExec(WebTarget baseResource) { @Override public RES_T exec(CMD_T command) { // this hack works because of ResponseStatusExceptionFilter - try(CMD_T cmd = command) { + try (CMD_T cmd = command) { try { return execute(cmd); } catch (ProcessingException e) { From b7e9732d0993ce61c5f08f4bc4a495c43236ff3c Mon Sep 17 00:00:00 2001 From: Marcus Linke Date: Fri, 21 Aug 2015 20:50:46 +0200 Subject: [PATCH 4/4] fix issue #303 --- .../dockerjava/api/command/DockerCmd.java | 3 +++ .../core/command/AbstrAsyncDockerCmd.java | 2 +- .../core/command/AbstrDockerCmd.java | 2 +- .../core/command/BuildImageCmdImpl.java | 8 +++++-- .../jaxrs/AbstrAsyncDockerCmdExec.java | 6 +---- .../jaxrs/AbstrSyncDockerCmdExec.java | 24 +++++++------------ 6 files changed, 20 insertions(+), 25 deletions(-) diff --git a/src/main/java/com/github/dockerjava/api/command/DockerCmd.java b/src/main/java/com/github/dockerjava/api/command/DockerCmd.java index a4e7e3a5e..eafe34ae5 100644 --- a/src/main/java/com/github/dockerjava/api/command/DockerCmd.java +++ b/src/main/java/com/github/dockerjava/api/command/DockerCmd.java @@ -4,4 +4,7 @@ public interface DockerCmd extends Closeable { + @Override + public void close(); + } \ No newline at end of file diff --git a/src/main/java/com/github/dockerjava/core/command/AbstrAsyncDockerCmd.java b/src/main/java/com/github/dockerjava/core/command/AbstrAsyncDockerCmd.java index 04311e8c1..c49c0404c 100644 --- a/src/main/java/com/github/dockerjava/core/command/AbstrAsyncDockerCmd.java +++ b/src/main/java/com/github/dockerjava/core/command/AbstrAsyncDockerCmd.java @@ -25,7 +25,7 @@ public > T exec(T resultCallback) { } @Override - public void close() throws IOException { + public void close() { } } diff --git a/src/main/java/com/github/dockerjava/core/command/AbstrDockerCmd.java b/src/main/java/com/github/dockerjava/core/command/AbstrDockerCmd.java index c4fedac58..3594f960f 100644 --- a/src/main/java/com/github/dockerjava/core/command/AbstrDockerCmd.java +++ b/src/main/java/com/github/dockerjava/core/command/AbstrDockerCmd.java @@ -34,7 +34,7 @@ public RES_T exec() throws DockerException { } @Override - public void close() throws IOException { + public void close() { } protected String registryAuth(AuthConfig authConfig) { diff --git a/src/main/java/com/github/dockerjava/core/command/BuildImageCmdImpl.java b/src/main/java/com/github/dockerjava/core/command/BuildImageCmdImpl.java index 56ce8f78f..30857485b 100644 --- a/src/main/java/com/github/dockerjava/core/command/BuildImageCmdImpl.java +++ b/src/main/java/com/github/dockerjava/core/command/BuildImageCmdImpl.java @@ -197,10 +197,14 @@ public BuildImageCmd withBuildAuthConfigs(AuthConfigurations authConfigs) { } @Override - public void close() throws IOException { + public void close() { super.close(); - tarInputStream.close(); + try { + tarInputStream.close(); + } catch (IOException e) { + throw new RuntimeException(e); + } } @Override diff --git a/src/main/java/com/github/dockerjava/jaxrs/AbstrAsyncDockerCmdExec.java b/src/main/java/com/github/dockerjava/jaxrs/AbstrAsyncDockerCmdExec.java index cb91a56e7..c8cc954f3 100644 --- a/src/main/java/com/github/dockerjava/jaxrs/AbstrAsyncDockerCmdExec.java +++ b/src/main/java/com/github/dockerjava/jaxrs/AbstrAsyncDockerCmdExec.java @@ -50,11 +50,7 @@ public void onError(Throwable throwable) { @Override public void onComplete() { resultCallback.onComplete(); - try { - command.close(); - } catch (IOException e) { - throw new RuntimeException(e); - } + command.close(); } }; diff --git a/src/main/java/com/github/dockerjava/jaxrs/AbstrSyncDockerCmdExec.java b/src/main/java/com/github/dockerjava/jaxrs/AbstrSyncDockerCmdExec.java index 7e26c519e..016184053 100644 --- a/src/main/java/com/github/dockerjava/jaxrs/AbstrSyncDockerCmdExec.java +++ b/src/main/java/com/github/dockerjava/jaxrs/AbstrSyncDockerCmdExec.java @@ -19,25 +19,17 @@ public AbstrSyncDockerCmdExec(WebTarget baseResource) { @Override public RES_T exec(CMD_T command) { // this hack works because of ResponseStatusExceptionFilter - RES_T result; - try { - result = execute(command); - - } catch (ProcessingException e) { - if (e.getCause() instanceof DockerException) { - throw (DockerException) e.getCause(); - } else { - throw e; - } - } finally { + try (CMD_T cmd = command) { try { - command.close(); - } catch (IOException e) { - throw new RuntimeException(e); + return execute(cmd); + } catch (ProcessingException e) { + if (e.getCause() instanceof DockerException) { + throw (DockerException) e.getCause(); + } else { + throw e; + } } } - - return result; } protected abstract RES_T execute(CMD_T command);