Merge branch '6.1.x'

This commit is contained in:
Stéphane Nicoll 2024-07-04 16:52:48 +02:00
commit 6fa340760d
2 changed files with 17 additions and 10 deletions

View File

@ -274,10 +274,11 @@ public class WebClientResponseException extends WebClientException {
@Override @Override
public String getMessage() { public String getMessage() {
String message = String.valueOf(super.getMessage());
if (shouldHintAtResponseFailure()) { if (shouldHintAtResponseFailure()) {
return super.getMessage() + ", but response failed with cause: " + getCause(); return message + ", but response failed with cause: " + getCause();
} }
return super.getMessage(); return message;
} }
private boolean shouldHintAtResponseFailure() { private boolean shouldHintAtResponseFailure() {

View File

@ -20,6 +20,11 @@ import org.junit.jupiter.api.Test;
import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThat;
/**
* Tests for {@link WebClientResponseException}.
*
* @author Simon Baslé
*/
class WebClientResponseExceptionTests { class WebClientResponseExceptionTests {
@Test @Test
@ -31,34 +36,34 @@ class WebClientResponseExceptionTests {
@Test @Test
void constructWith1xxStatusCodeAndCauseAdditionalMessage() { void constructWith1xxStatusCodeAndCauseAdditionalMessage() {
final WebClientResponseException ex = new WebClientResponseException(100, "reasonPhrase", null, null, null); WebClientResponseException ex = new WebClientResponseException(100, "reasonPhrase", null, null, null);
ex.initCause(new RuntimeException("example cause")); ex.initCause(new RuntimeException("example cause"));
assertThat(ex).hasMessage("100 reasonPhrase, but response failed with cause: java.lang.RuntimeException: example cause"); assertThat(ex).hasMessage("100 reasonPhrase, but response failed with cause: java.lang.RuntimeException: example cause");
} }
@Test @Test
void constructWith2xxStatusCodeAndCauseAdditionalMessage() { void constructWith2xxStatusCodeAndCauseAdditionalMessage() {
final WebClientResponseException ex = new WebClientResponseException(200, "reasonPhrase", null, null, null); WebClientResponseException ex = new WebClientResponseException(200, "reasonPhrase", null, null, null);
ex.initCause(new RuntimeException("example cause")); ex.initCause(new RuntimeException("example cause"));
assertThat(ex).hasMessage("200 reasonPhrase, but response failed with cause: java.lang.RuntimeException: example cause"); assertThat(ex).hasMessage("200 reasonPhrase, but response failed with cause: java.lang.RuntimeException: example cause");
} }
@Test @Test
void constructWith3xxStatusCodeAndCauseAdditionalMessage() { void constructWith3xxStatusCodeAndCauseAdditionalMessage() {
final WebClientResponseException ex = new WebClientResponseException(300, "reasonPhrase", null, null, null); WebClientResponseException ex = new WebClientResponseException(300, "reasonPhrase", null, null, null);
ex.initCause(new RuntimeException("example cause")); ex.initCause(new RuntimeException("example cause"));
assertThat(ex).hasMessage("300 reasonPhrase, but response failed with cause: java.lang.RuntimeException: example cause"); assertThat(ex).hasMessage("300 reasonPhrase, but response failed with cause: java.lang.RuntimeException: example cause");
} }
@Test @Test
void constructWithExplicitMessageAndNotErrorCodeAdditionalMessage() { void constructWithExplicitMessageAndNotErrorCodeAdditionalMessage() {
final WebClientResponseException ex = new WebClientResponseException("explicit message", 100, "reasonPhrase", null, null, null); WebClientResponseException ex = new WebClientResponseException("explicit message", 100, "reasonPhrase", null, null, null);
assertThat(ex).hasMessage("explicit message, but response failed with cause: null"); assertThat(ex).hasMessage("explicit message, but response failed with cause: null");
} }
@Test @Test
void constructWithExplicitMessageAndNotErrorCodeAndCauseAdditionalMessage() { void constructWithExplicitMessageAndNotErrorCodeAndCauseAdditionalMessage() {
final WebClientResponseException ex = new WebClientResponseException("explicit message", 100, "reasonPhrase", null, null, null); WebClientResponseException ex = new WebClientResponseException("explicit message", 100, "reasonPhrase", null, null, null);
ex.initCause(new RuntimeException("example cause")); ex.initCause(new RuntimeException("example cause"));
assertThat(ex).hasMessage("explicit message, but response failed with cause: java.lang.RuntimeException: example cause") assertThat(ex).hasMessage("explicit message, but response failed with cause: java.lang.RuntimeException: example cause")
.hasRootCauseMessage("example cause"); .hasRootCauseMessage("example cause");
@ -66,22 +71,23 @@ class WebClientResponseExceptionTests {
@Test @Test
void constructWithExplicitMessageAndErrorCodeAndCauseNoAdditionalMessage() { void constructWithExplicitMessageAndErrorCodeAndCauseNoAdditionalMessage() {
final WebClientResponseException ex = new WebClientResponseException("explicit message", 404, "reasonPhrase", null, null, null); WebClientResponseException ex = new WebClientResponseException("explicit message", 404, "reasonPhrase", null, null, null);
ex.initCause(new RuntimeException("example cause")); ex.initCause(new RuntimeException("example cause"));
assertThat(ex).hasMessage("explicit message").hasRootCauseMessage("example cause"); assertThat(ex).hasMessage("explicit message").hasRootCauseMessage("example cause");
} }
@Test @Test
void constructWith4xxStatusCodeAndCauseNoAdditionalMessage() { void constructWith4xxStatusCodeAndCauseNoAdditionalMessage() {
final WebClientResponseException ex = new WebClientResponseException(400, "reasonPhrase", null, null, null); WebClientResponseException ex = new WebClientResponseException(400, "reasonPhrase", null, null, null);
ex.initCause(new RuntimeException("example cause")); ex.initCause(new RuntimeException("example cause"));
assertThat(ex).hasMessage("400 reasonPhrase").hasRootCauseMessage("example cause"); assertThat(ex).hasMessage("400 reasonPhrase").hasRootCauseMessage("example cause");
} }
@Test @Test
void constructWith5xxStatusCodeAndCauseNoAdditionalMessage() { void constructWith5xxStatusCodeAndCauseNoAdditionalMessage() {
final WebClientResponseException ex = new WebClientResponseException(500, "reasonPhrase", null, null, null); WebClientResponseException ex = new WebClientResponseException(500, "reasonPhrase", null, null, null);
ex.initCause(new RuntimeException("example cause")); ex.initCause(new RuntimeException("example cause"));
assertThat(ex).hasMessage("500 reasonPhrase").hasRootCauseMessage("example cause"); assertThat(ex).hasMessage("500 reasonPhrase").hasRootCauseMessage("example cause");
} }
} }