Nullable HttpMethod parameter only on internal doExecute delegate

Issue: SPR-15540

(cherry picked from commit f8c2d7a)
This commit is contained in:
Juergen Hoeller
2018-05-01 23:52:12 +02:00
parent d74a2730ec
commit 9dc538a7c6

View File

@@ -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();
}
}