diff --git a/spring-web/src/main/java/org/springframework/http/client/SimpleBufferingAsyncClientHttpRequest.java b/spring-web/src/main/java/org/springframework/http/client/SimpleBufferingAsyncClientHttpRequest.java index 2be5c170df02..25a4ca724449 100644 --- a/spring-web/src/main/java/org/springframework/http/client/SimpleBufferingAsyncClientHttpRequest.java +++ b/spring-web/src/main/java/org/springframework/http/client/SimpleBufferingAsyncClientHttpRequest.java @@ -76,27 +76,24 @@ public URI getURI() { protected ListenableFuture executeInternal( final HttpHeaders headers, final byte[] bufferedOutput) throws IOException { - return this.taskExecutor.submitListenable(new Callable() { - @Override - public ClientHttpResponse call() throws Exception { - SimpleBufferingClientHttpRequest.addHeaders(connection, headers); - // JDK <1.8 doesn't support getOutputStream with HTTP DELETE - if (getMethod() == HttpMethod.DELETE && bufferedOutput.length == 0) { - connection.setDoOutput(false); - } - if (connection.getDoOutput() && outputStreaming) { - connection.setFixedLengthStreamingMode(bufferedOutput.length); - } - connection.connect(); - if (connection.getDoOutput()) { - FileCopyUtils.copy(bufferedOutput, connection.getOutputStream()); - } - else { - // Immediately trigger the request in a no-output scenario as well - connection.getResponseCode(); - } - return new SimpleClientHttpResponse(connection); + return this.taskExecutor.submitListenable(() -> { + SimpleBufferingClientHttpRequest.addHeaders(connection, headers); + // JDK <1.8 doesn't support getOutputStream with HTTP DELETE + if (getMethod() == HttpMethod.DELETE && bufferedOutput.length == 0) { + connection.setDoOutput(false); } + if (connection.getDoOutput() && outputStreaming) { + connection.setFixedLengthStreamingMode(bufferedOutput.length); + } + connection.connect(); + if (connection.getDoOutput()) { + FileCopyUtils.copy(bufferedOutput, connection.getOutputStream()); + } + else { + // Immediately trigger the request in a no-output scenario as well + connection.getResponseCode(); + } + return new SimpleClientHttpResponse(connection); }); } diff --git a/spring-web/src/main/java/org/springframework/http/client/SimpleStreamingAsyncClientHttpRequest.java b/spring-web/src/main/java/org/springframework/http/client/SimpleStreamingAsyncClientHttpRequest.java index de4da24aabdf..effec019e66e 100644 --- a/spring-web/src/main/java/org/springframework/http/client/SimpleStreamingAsyncClientHttpRequest.java +++ b/spring-web/src/main/java/org/springframework/http/client/SimpleStreamingAsyncClientHttpRequest.java @@ -103,25 +103,22 @@ protected OutputStream getBodyInternal(HttpHeaders headers) throws IOException { @Override protected ListenableFuture executeInternal(final HttpHeaders headers) throws IOException { - return this.taskExecutor.submitListenable(new Callable() { - @Override - public ClientHttpResponse call() throws Exception { - try { - if (body != null) { - body.close(); - } - else { - SimpleBufferingClientHttpRequest.addHeaders(connection, headers); - connection.connect(); - // Immediately trigger the request in a no-output scenario as well - connection.getResponseCode(); - } + return this.taskExecutor.submitListenable(() -> { + try { + if (body != null) { + body.close(); } - catch (IOException ex) { - // ignore + else { + SimpleBufferingClientHttpRequest.addHeaders(connection, headers); + connection.connect(); + // Immediately trigger the request in a no-output scenario as well + connection.getResponseCode(); } - return new SimpleClientHttpResponse(connection); } + catch (IOException ex) { + // ignore + } + return new SimpleClientHttpResponse(connection); }); }