Skip to content

Commit 9dc538a

Browse files
committed
Nullable HttpMethod parameter only on internal doExecute delegate
Issue: SPR-15540 (cherry picked from commit f8c2d7a)
1 parent d74a273 commit 9dc538a

File tree

1 file changed

+10
-19
lines changed

1 file changed

+10
-19
lines changed

spring-web/src/main/java/org/springframework/web/client/RestTemplate.java

Lines changed: 10 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -653,23 +653,19 @@ public <T> ResponseEntity<T> exchange(URI url, HttpMethod method, @Nullable Http
653653
public <T> ResponseEntity<T> exchange(RequestEntity<?> requestEntity, Class<T> responseType)
654654
throws RestClientException {
655655

656-
Assert.notNull(requestEntity, "RequestEntity must not be null");
657-
658656
RequestCallback requestCallback = httpEntityCallback(requestEntity, responseType);
659657
ResponseExtractor<ResponseEntity<T>> responseExtractor = responseEntityExtractor(responseType);
660-
return nonNull(execute(requestEntity.getUrl(), requestEntity.getMethod(), requestCallback, responseExtractor));
658+
return nonNull(doExecute(requestEntity.getUrl(), requestEntity.getMethod(), requestCallback, responseExtractor));
661659
}
662660

663661
@Override
664662
public <T> ResponseEntity<T> exchange(RequestEntity<?> requestEntity, ParameterizedTypeReference<T> responseType)
665663
throws RestClientException {
666664

667-
Assert.notNull(requestEntity, "RequestEntity must not be null");
668-
669665
Type type = responseType.getType();
670666
RequestCallback requestCallback = httpEntityCallback(requestEntity, type);
671667
ResponseExtractor<ResponseEntity<T>> responseExtractor = responseEntityExtractor(type);
672-
return nonNull(execute(requestEntity.getUrl(), requestEntity.getMethod(), requestCallback, responseExtractor));
668+
return nonNull(doExecute(requestEntity.getUrl(), requestEntity.getMethod(), requestCallback, responseExtractor));
673669
}
674670

675671

@@ -696,7 +692,7 @@ public <T> T execute(String url, HttpMethod method, @Nullable RequestCallback re
696692

697693
@Override
698694
@Nullable
699-
public <T> T execute(URI url, @Nullable HttpMethod method, @Nullable RequestCallback requestCallback,
695+
public <T> T execute(URI url, HttpMethod method, @Nullable RequestCallback requestCallback,
700696
@Nullable ResponseExtractor<T> responseExtractor) throws RestClientException {
701697

702698
return doExecute(url, method, requestCallback, responseExtractor);
@@ -716,8 +712,8 @@ public <T> T execute(URI url, @Nullable HttpMethod method, @Nullable RequestCall
716712
protected <T> T doExecute(URI url, @Nullable HttpMethod method, @Nullable RequestCallback requestCallback,
717713
@Nullable ResponseExtractor<T> responseExtractor) throws RestClientException {
718714

719-
Assert.notNull(url, "'url' must not be null");
720-
Assert.notNull(method, "'method' must not be null");
715+
Assert.notNull(url, "URI is required");
716+
Assert.notNull(method, "HttpMethod is required");
721717
ClientHttpResponse response = null;
722718
try {
723719
ClientHttpRequest request = createRequest(url, method);
@@ -726,12 +722,7 @@ protected <T> T doExecute(URI url, @Nullable HttpMethod method, @Nullable Reques
726722
}
727723
response = request.execute();
728724
handleResponse(url, method, response);
729-
if (responseExtractor != null) {
730-
return responseExtractor.extractData(response);
731-
}
732-
else {
733-
return null;
734-
}
725+
return (responseExtractor != null ? responseExtractor.extractData(response) : null);
735726
}
736727
catch (IOException ex) {
737728
String resource = url.toString();
@@ -829,7 +820,7 @@ private class AcceptHeaderRequestCallback implements RequestCallback {
829820
@Nullable
830821
private final Type responseType;
831822

832-
private AcceptHeaderRequestCallback(@Nullable Type responseType) {
823+
public AcceptHeaderRequestCallback(@Nullable Type responseType) {
833824
this.responseType = responseType;
834825
}
835826

@@ -886,11 +877,11 @@ private class HttpEntityRequestCallback extends AcceptHeaderRequestCallback {
886877

887878
private final HttpEntity<?> requestEntity;
888879

889-
private HttpEntityRequestCallback(@Nullable Object requestBody) {
880+
public HttpEntityRequestCallback(@Nullable Object requestBody) {
890881
this(requestBody, null);
891882
}
892883

893-
private HttpEntityRequestCallback(@Nullable Object requestBody, @Nullable Type responseType) {
884+
public HttpEntityRequestCallback(@Nullable Object requestBody, @Nullable Type responseType) {
894885
super(responseType);
895886
if (requestBody instanceof HttpEntity) {
896887
this.requestEntity = (HttpEntity<?>) requestBody;
@@ -1013,7 +1004,7 @@ public ResponseEntity<T> extractData(ClientHttpResponse response) throws IOExcep
10131004
private static class HeadersExtractor implements ResponseExtractor<HttpHeaders> {
10141005

10151006
@Override
1016-
public HttpHeaders extractData(ClientHttpResponse response) throws IOException {
1007+
public HttpHeaders extractData(ClientHttpResponse response) {
10171008
return response.getHeaders();
10181009
}
10191010
}

0 commit comments

Comments
 (0)