mirror of
https://github.com/spring-projects/spring-boot.git
synced 2024-08-29 03:06:45 +08:00
Polish Docker client exception handling
This commit is contained in:
parent
6f095d6fec
commit
ada0741e10
@ -48,6 +48,7 @@ import org.springframework.boot.buildpack.platform.json.SharedObjectMapper;
|
||||
*
|
||||
* @author Phillip Webb
|
||||
* @author Mike Smithson
|
||||
* @author Scott Frederick
|
||||
*/
|
||||
class HttpClientHttp implements Http {
|
||||
|
||||
@ -129,9 +130,8 @@ class HttpClientHttp implements Http {
|
||||
}
|
||||
|
||||
private Response execute(HttpUriRequest request) {
|
||||
CloseableHttpResponse response;
|
||||
try {
|
||||
response = this.client.execute(request);
|
||||
CloseableHttpResponse response = this.client.execute(request);
|
||||
StatusLine statusLine = response.getStatusLine();
|
||||
int statusCode = statusLine.getStatusCode();
|
||||
HttpEntity entity = response.getEntity();
|
||||
@ -143,15 +143,11 @@ class HttpClientHttp implements Http {
|
||||
if (statusCode == 500) {
|
||||
throw new DockerException(request.getURI(), statusCode, statusLine.getReasonPhrase(), null);
|
||||
}
|
||||
return new HttpClientResponse(response);
|
||||
}
|
||||
catch (IOException ioe) {
|
||||
StringWriter stringWriter = new StringWriter();
|
||||
PrintWriter printWriter = new PrintWriter(stringWriter);
|
||||
ioe.printStackTrace(printWriter);
|
||||
throw new DockerException(request.getURI(), 500, stringWriter.toString(), null);
|
||||
throw new DockerException(request.getURI(), 500, ioe.getMessage(), null);
|
||||
}
|
||||
|
||||
return new HttpClientResponse(response);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -54,6 +54,7 @@ import static org.mockito.Mockito.verify;
|
||||
*
|
||||
* @author Phillip Webb
|
||||
* @author Mike Smithson
|
||||
* @author Scott Frederick
|
||||
*/
|
||||
class HttpClientHttpTests {
|
||||
|
||||
@ -186,11 +187,12 @@ class HttpClientHttpTests {
|
||||
}
|
||||
|
||||
@Test
|
||||
void executeWhenClientExecutesRequestThrowsIOExceptionRethrowsAsDockerException() throws IOException {
|
||||
given(this.client.execute(any())).willThrow(IOException.class);
|
||||
void executeWhenClientThrowsIOExceptionRethrowsAsDockerException() throws IOException {
|
||||
given(this.client.execute(any())).willThrow(new IOException("test IO exception"));
|
||||
assertThatExceptionOfType(DockerException.class).isThrownBy(() -> this.http.get(this.uri))
|
||||
.satisfies((ex) -> assertThat(ex.getErrors()).isNull()).satisfies(DockerException::getStatusCode)
|
||||
.withMessageContaining("500").satisfies((ex) -> assertThat(ex.getReasonPhrase())).isNotNull();
|
||||
.satisfies((ex) -> assertThat(ex.getErrors()).isNull())
|
||||
.satisfies(DockerException::getStatusCode).withMessageContaining("500")
|
||||
.satisfies((ex) -> assertThat(ex.getReasonPhrase()).contains("test IO exception"));
|
||||
}
|
||||
|
||||
private String writeToString(HttpEntity entity) throws IOException {
|
||||
|
Loading…
Reference in New Issue
Block a user