Nullable HttpMethod parameter only on internal doExecute delegate
Issue: SPR-15540
(cherry picked from commit f8c2d7a)
This commit is contained in:
@@ -653,23 +653,19 @@ public class RestTemplate extends InterceptingHttpAccessor implements RestOperat
|
||||
public <T> ResponseEntity<T> exchange(RequestEntity<?> requestEntity, Class<T> responseType)
|
||||
throws RestClientException {
|
||||
|
||||
Assert.notNull(requestEntity, "RequestEntity must not be null");
|
||||
|
||||
RequestCallback requestCallback = httpEntityCallback(requestEntity, responseType);
|
||||
ResponseExtractor<ResponseEntity<T>> responseExtractor = responseEntityExtractor(responseType);
|
||||
return nonNull(execute(requestEntity.getUrl(), requestEntity.getMethod(), requestCallback, responseExtractor));
|
||||
return nonNull(doExecute(requestEntity.getUrl(), requestEntity.getMethod(), requestCallback, responseExtractor));
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> ResponseEntity<T> exchange(RequestEntity<?> requestEntity, ParameterizedTypeReference<T> responseType)
|
||||
throws RestClientException {
|
||||
|
||||
Assert.notNull(requestEntity, "RequestEntity must not be null");
|
||||
|
||||
Type type = responseType.getType();
|
||||
RequestCallback requestCallback = httpEntityCallback(requestEntity, type);
|
||||
ResponseExtractor<ResponseEntity<T>> responseExtractor = responseEntityExtractor(type);
|
||||
return nonNull(execute(requestEntity.getUrl(), requestEntity.getMethod(), requestCallback, responseExtractor));
|
||||
return nonNull(doExecute(requestEntity.getUrl(), requestEntity.getMethod(), requestCallback, responseExtractor));
|
||||
}
|
||||
|
||||
|
||||
@@ -696,7 +692,7 @@ public class RestTemplate extends InterceptingHttpAccessor implements RestOperat
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public <T> T execute(URI url, @Nullable HttpMethod method, @Nullable RequestCallback requestCallback,
|
||||
public <T> T execute(URI url, HttpMethod method, @Nullable RequestCallback requestCallback,
|
||||
@Nullable ResponseExtractor<T> responseExtractor) throws RestClientException {
|
||||
|
||||
return doExecute(url, method, requestCallback, responseExtractor);
|
||||
@@ -716,8 +712,8 @@ public class RestTemplate extends InterceptingHttpAccessor implements RestOperat
|
||||
protected <T> T doExecute(URI url, @Nullable HttpMethod method, @Nullable RequestCallback requestCallback,
|
||||
@Nullable ResponseExtractor<T> responseExtractor) throws RestClientException {
|
||||
|
||||
Assert.notNull(url, "'url' must not be null");
|
||||
Assert.notNull(method, "'method' must not be null");
|
||||
Assert.notNull(url, "URI is required");
|
||||
Assert.notNull(method, "HttpMethod is required");
|
||||
ClientHttpResponse response = null;
|
||||
try {
|
||||
ClientHttpRequest request = createRequest(url, method);
|
||||
@@ -726,12 +722,7 @@ public class RestTemplate extends InterceptingHttpAccessor implements RestOperat
|
||||
}
|
||||
response = request.execute();
|
||||
handleResponse(url, method, response);
|
||||
if (responseExtractor != null) {
|
||||
return responseExtractor.extractData(response);
|
||||
}
|
||||
else {
|
||||
return null;
|
||||
}
|
||||
return (responseExtractor != null ? responseExtractor.extractData(response) : null);
|
||||
}
|
||||
catch (IOException ex) {
|
||||
String resource = url.toString();
|
||||
@@ -829,7 +820,7 @@ public class RestTemplate extends InterceptingHttpAccessor implements RestOperat
|
||||
@Nullable
|
||||
private final Type responseType;
|
||||
|
||||
private AcceptHeaderRequestCallback(@Nullable Type responseType) {
|
||||
public AcceptHeaderRequestCallback(@Nullable Type responseType) {
|
||||
this.responseType = responseType;
|
||||
}
|
||||
|
||||
@@ -886,11 +877,11 @@ public class RestTemplate extends InterceptingHttpAccessor implements RestOperat
|
||||
|
||||
private final HttpEntity<?> requestEntity;
|
||||
|
||||
private HttpEntityRequestCallback(@Nullable Object requestBody) {
|
||||
public HttpEntityRequestCallback(@Nullable Object requestBody) {
|
||||
this(requestBody, null);
|
||||
}
|
||||
|
||||
private HttpEntityRequestCallback(@Nullable Object requestBody, @Nullable Type responseType) {
|
||||
public HttpEntityRequestCallback(@Nullable Object requestBody, @Nullable Type responseType) {
|
||||
super(responseType);
|
||||
if (requestBody instanceof HttpEntity) {
|
||||
this.requestEntity = (HttpEntity<?>) requestBody;
|
||||
@@ -1013,7 +1004,7 @@ public class RestTemplate extends InterceptingHttpAccessor implements RestOperat
|
||||
private static class HeadersExtractor implements ResponseExtractor<HttpHeaders> {
|
||||
|
||||
@Override
|
||||
public HttpHeaders extractData(ClientHttpResponse response) throws IOException {
|
||||
public HttpHeaders extractData(ClientHttpResponse response) {
|
||||
return response.getHeaders();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user