diff --git a/spring-webflux/src/main/java/org/springframework/web/reactive/function/client/DefaultWebClient.java b/spring-webflux/src/main/java/org/springframework/web/reactive/function/client/DefaultWebClient.java index 31deb88261da..8c6854143b29 100644 --- a/spring-webflux/src/main/java/org/springframework/web/reactive/function/client/DefaultWebClient.java +++ b/spring-webflux/src/main/java/org/springframework/web/reactive/function/client/DefaultWebClient.java @@ -465,7 +465,7 @@ public Mono exchange() { final AtomicBoolean responseReceived = new AtomicBoolean(); return responseMono .doOnNext(response -> responseReceived.set(true)) - .doOnError(observationContext::setError) + .doOnError(observation::error) .doFinally(signalType -> { if (signalType == SignalType.CANCEL && !responseReceived.get()) { observationContext.setAborted(true); diff --git a/spring-webflux/src/test/java/org/springframework/web/reactive/function/client/WebClientObservationTests.java b/spring-webflux/src/test/java/org/springframework/web/reactive/function/client/WebClientObservationTests.java index 4cd8900ce82a..c3a9460f3c55 100644 --- a/spring-webflux/src/test/java/org/springframework/web/reactive/function/client/WebClientObservationTests.java +++ b/spring-webflux/src/test/java/org/springframework/web/reactive/function/client/WebClientObservationTests.java @@ -110,7 +110,8 @@ void recordsObservationForErrorExchange() { StepVerifier.create(client.get().uri("/path").retrieve().bodyToMono(Void.class)) .expectError(IllegalStateException.class) .verify(Duration.ofSeconds(5)); - assertThatHttpObservation().hasLowCardinalityKeyValue("exception", "IllegalStateException") + assertThatHttpObservation().hasError() + .hasLowCardinalityKeyValue("exception", "IllegalStateException") .hasLowCardinalityKeyValue("status", "CLIENT_ERROR"); } @@ -180,7 +181,7 @@ void recordsObservationWithResponseDetailsWhenFilterFunctionErrors() { StepVerifier.create(responseMono) .expectError(IllegalStateException.class) .verify(Duration.ofSeconds(5)); - assertThatHttpObservation() + assertThatHttpObservation().hasError() .hasLowCardinalityKeyValue("exception", "IllegalStateException") .hasLowCardinalityKeyValue("status", "200"); }