diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/client/TraceWebClientBeanPostProcessor.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/client/TraceWebClientBeanPostProcessor.java index b7cfdcf12..6628f2eab 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/client/TraceWebClientBeanPostProcessor.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/client/TraceWebClientBeanPostProcessor.java @@ -75,16 +75,19 @@ final class TraceWebClientBeanPostProcessor implements BeanPostProcessor { throws BeansException { if (bean instanceof WebClient) { WebClient webClient = (WebClient) bean; - return webClient.mutate() - .filters(addTraceExchangeFilterFunctionIfNotPresent()).build(); + return wrapBuilder(webClient.mutate()).build(); } else if (bean instanceof WebClient.Builder) { WebClient.Builder webClientBuilder = (WebClient.Builder) bean; - return webClientBuilder.filters(addTraceExchangeFilterFunctionIfNotPresent()); + return wrapBuilder(webClientBuilder); } return bean; } + private WebClient.Builder wrapBuilder(WebClient.Builder webClientBuilder) { + return webClientBuilder.filters(addTraceExchangeFilterFunctionIfNotPresent()); + } + private Consumer> addTraceExchangeFilterFunctionIfNotPresent() { return functions -> { if (functions.stream()