diff --git a/spring-web/src/main/java/org/springframework/web/client/support/RestTemplateAdapter.java b/spring-web/src/main/java/org/springframework/web/client/support/RestTemplateAdapter.java index 946006c0803..496b9a133b2 100644 --- a/spring-web/src/main/java/org/springframework/web/client/support/RestTemplateAdapter.java +++ b/spring-web/src/main/java/org/springframework/web/client/support/RestTemplateAdapter.java @@ -54,9 +54,8 @@ public final class RestTemplateAdapter implements HttpExchangeAdapter { } @Override - public Void exchange(HttpRequestValues requestValues) { + public void exchange(HttpRequestValues requestValues) { this.restTemplate.exchange(newRequest(requestValues), Void.class); - return null; } @Override diff --git a/spring-web/src/main/java/org/springframework/web/service/invoker/AbstractReactorHttpExchangeAdapter.java b/spring-web/src/main/java/org/springframework/web/service/invoker/AbstractReactorHttpExchangeAdapter.java index 7bf5541ed9b..af9cd782a5f 100644 --- a/spring-web/src/main/java/org/springframework/web/service/invoker/AbstractReactorHttpExchangeAdapter.java +++ b/spring-web/src/main/java/org/springframework/web/service/invoker/AbstractReactorHttpExchangeAdapter.java @@ -91,12 +91,12 @@ public abstract class AbstractReactorHttpExchangeAdapter } @Override - public Void exchange(HttpRequestValues requestValues) { + public void exchange(HttpRequestValues requestValues) { if (this.blockTimeout != null) { - return exchangeForMono(requestValues).block(this.blockTimeout); + exchangeForMono(requestValues).block(this.blockTimeout); } else { - return exchangeForMono(requestValues).block(); + exchangeForMono(requestValues).block(); } } diff --git a/spring-web/src/main/java/org/springframework/web/service/invoker/HttpExchangeAdapter.java b/spring-web/src/main/java/org/springframework/web/service/invoker/HttpExchangeAdapter.java index cd354d87c17..20d995f1024 100644 --- a/spring-web/src/main/java/org/springframework/web/service/invoker/HttpExchangeAdapter.java +++ b/spring-web/src/main/java/org/springframework/web/service/invoker/HttpExchangeAdapter.java @@ -34,7 +34,7 @@ public interface HttpExchangeAdapter { * Perform the given request, and release the response content, if any. * @param requestValues the request to perform */ - Void exchange(HttpRequestValues requestValues); + void exchange(HttpRequestValues requestValues); /** * Perform the given request, release the response content, and return the diff --git a/spring-web/src/main/java/org/springframework/web/service/invoker/HttpServiceMethod.java b/spring-web/src/main/java/org/springframework/web/service/invoker/HttpServiceMethod.java index 42b2f7515db..f60b9c5ee2c 100644 --- a/spring-web/src/main/java/org/springframework/web/service/invoker/HttpServiceMethod.java +++ b/spring-web/src/main/java/org/springframework/web/service/invoker/HttpServiceMethod.java @@ -301,7 +301,10 @@ final class HttpServiceMethod { Function responseFunction; if (actualReturnType.equals(void.class) || actualReturnType.equals(Void.class)) { - responseFunction = client::exchange; + responseFunction = requestValues -> { + client.exchange(requestValues); + return null; + }; } else if (actualReturnType.equals(HttpHeaders.class)) { responseFunction = request -> processResponse(client.exchangeForHeaders(request), diff --git a/spring-web/src/test/java/org/springframework/web/service/invoker/TestHttpExchangeAdapter.java b/spring-web/src/test/java/org/springframework/web/service/invoker/TestHttpExchangeAdapter.java index cf112152b3a..913d548beed 100644 --- a/spring-web/src/test/java/org/springframework/web/service/invoker/TestHttpExchangeAdapter.java +++ b/spring-web/src/test/java/org/springframework/web/service/invoker/TestHttpExchangeAdapter.java @@ -59,9 +59,8 @@ public class TestHttpExchangeAdapter implements HttpExchangeAdapter, TestAdapter } @Override - public Void exchange(HttpRequestValues requestValues) { + public void exchange(HttpRequestValues requestValues) { saveInput("void", requestValues, null); - return null; } @Override