Browse Source

Test with hasError for unknown status code

Issue: SPR-16108
pull/1576/head
Juergen Hoeller 7 years ago
parent
commit
d963597ec0
  1. 8
      spring-web/src/main/java/org/springframework/web/client/DefaultResponseErrorHandler.java
  2. 16
      spring-web/src/test/java/org/springframework/web/client/DefaultResponseErrorHandlerTests.java

8
spring-web/src/main/java/org/springframework/web/client/DefaultResponseErrorHandler.java

@ -30,12 +30,14 @@ import org.springframework.util.FileCopyUtils; @@ -30,12 +30,14 @@ import org.springframework.util.FileCopyUtils;
* Spring's default implementation of the {@link ResponseErrorHandler} interface.
*
* <p>This error handler checks for the status code on the {@link ClientHttpResponse}:
* Any code with series {@link org.springframework.http.HttpStatus.Series#CLIENT_ERROR} or
* {@link org.springframework.http.HttpStatus.Series#SERVER_ERROR} is considered to be an
* error. This behavior can be changed by overriding the {@link #hasError(HttpStatus)} method.
* Any code with series {@link org.springframework.http.HttpStatus.Series#CLIENT_ERROR}
* or {@link org.springframework.http.HttpStatus.Series#SERVER_ERROR} is considered to be
* an error; this behavior can be changed by overriding the {@link #hasError(HttpStatus)}
* method. Unknown status codes will be ignored by {@link #hasError(ClientHttpResponse)}.
*
* @author Arjen Poutsma
* @author Rossen Stoyanchev
* @author Juergen Hoeller
* @since 3.0
* @see RestTemplate#setErrorHandler
*/

16
spring-web/src/test/java/org/springframework/web/client/DefaultResponseErrorHandlerTests.java

@ -67,8 +67,8 @@ public class DefaultResponseErrorHandlerTests { @@ -67,8 +67,8 @@ public class DefaultResponseErrorHandlerTests {
handler.handleError(response);
fail("expected HttpClientErrorException");
}
catch (HttpClientErrorException e) {
assertSame(headers, e.getResponseHeaders());
catch (HttpClientErrorException ex) {
assertSame(headers, ex.getResponseHeaders());
}
}
@ -109,4 +109,16 @@ public class DefaultResponseErrorHandlerTests { @@ -109,4 +109,16 @@ public class DefaultResponseErrorHandlerTests {
handler.handleError(response);
}
@Test // SPR-16108
public void hasErrorForUnknownStatusCode() throws Exception {
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.TEXT_PLAIN);
given(response.getRawStatusCode()).willReturn(999);
given(response.getStatusText()).willReturn("Custom status code");
given(response.getHeaders()).willReturn(headers);
assertFalse(handler.hasError(response));
}
}

Loading…
Cancel
Save