Add documentation on conditions when DefaultWebClientAdvice is not applied
@@ -17,6 +17,11 @@ public class DefaultWebClientAdvice {
@Advice.Return(readOnly = false) Mono<ClientResponse> mono) {
if (throwable == null
&& mono != null
+ // The response of the org.springframework.web.reactive.function.client.ExchangeFunction.exchange method is
+ // replaced by a decorator that in turn also calls the
+ // org.springframework.web.reactive.function.client.ExchangeFunction.exchange method. If the original return value
+ // is already decorated (we detect this if the "x-datadog-trace-id" is added), the result is not decorated again
+ // to avoid StackOverflowErrors.
&& !clientRequest.headers().keySet().contains("x-datadog-trace-id")) {
mono = new TracingClientResponseMono(clientRequest, exchangeFunction, GlobalTracer.get());
}
