RestTemplate avoids use of warn level for response errors

Protected handleResponse method replaces former private logResponseStatus/handleResponseError methods.

Issue: SPR-12760
master
Juergen Hoeller 10 years ago
parent 9d1e7fde3a
commit 594a14ab25
  1. 40
      spring-web/src/main/java/org/springframework/web/client/RestTemplate.java

@ -104,6 +104,7 @@ import org.springframework.web.util.UriTemplate;
* @author Arjen Poutsma
* @author Brian Clozel
* @author Roy Clarkson
* @author Juergen Hoeller
* @since 3.0
* @see HttpMessageConverter
* @see RequestCallback
@ -566,12 +567,7 @@ public class RestTemplate extends InterceptingHttpAccessor implements RestOperat
requestCallback.doWithRequest(request);
}
response = request.execute();
if (!getErrorHandler().hasError(response)) {
logResponseStatus(method, url, response);
}
else {
handleResponseError(method, url, response);
}
handleResponse(url, method, response);
if (responseExtractor != null) {
return responseExtractor.extractData(response);
}
@ -590,29 +586,33 @@ public class RestTemplate extends InterceptingHttpAccessor implements RestOperat
}
}
private void logResponseStatus(HttpMethod method, URI url, ClientHttpResponse response) {
/**
* Handle the given response, performing appropriate logging and
* invoking the {@link ResponseErrorHandler} if necessary.
* <p>Can be overridden in subclasses.
* @param url the fully-expanded URL to connect to
* @param method the HTTP method to execute (GET, POST, etc.)
* @param response the resulting {@link ClientHttpResponse}
* @throws IOException if propagated from {@link ResponseErrorHandler}
* @see #setErrorHandler
* @since 4.1.6
*/
protected void handleResponse(URI url, HttpMethod method, ClientHttpResponse response) throws IOException {
ResponseErrorHandler errorHandler = getErrorHandler();
boolean hasError = errorHandler.hasError(response);
if (logger.isDebugEnabled()) {
try {
logger.debug(method.name() + " request for \"" + url + "\" resulted in " +
response.getRawStatusCode() + " (" + response.getStatusText() + ")");
response.getRawStatusCode() + " (" + response.getStatusText() + ")" +
(hasError ? "; invoking error handler" : ""));
}
catch (IOException ex) {
// ignore
}
}
}
private void handleResponseError(HttpMethod method, URI url, ClientHttpResponse response) throws IOException {
if (logger.isWarnEnabled()) {
try {
logger.warn(method.name() + " request for \"" + url + "\" resulted in " +
response.getRawStatusCode() + " (" + response.getStatusText() + "); invoking error handler");
}
catch (IOException ex) {
// ignore
}
if (hasError) {
errorHandler.handleError(response);
}
getErrorHandler().handleError(response);
}
/**

Loading…
Cancel
Save