diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/async/ExecutorBeanPostProcessor.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/async/ExecutorBeanPostProcessor.java index 1d3858463..28b3fc205 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/async/ExecutorBeanPostProcessor.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/async/ExecutorBeanPostProcessor.java @@ -25,6 +25,7 @@ import org.aopalliance.intercept.MethodInterceptor; import org.aopalliance.intercept.MethodInvocation; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; + import org.springframework.aop.framework.AopConfigException; import org.springframework.aop.framework.ProxyFactoryBean; import org.springframework.beans.BeansException; @@ -125,6 +126,10 @@ class ExecutorBeanPostProcessor implements BeanPostProcessor { factory.setProxyTargetClass(cglibProxy); factory.addAdvice(new ExecutorMethodInterceptor(executor, this.beanFactory)); factory.setTarget(bean); + factory.setBeanClassLoader(new ClassLoader(this.getClass().getClassLoader()) { + + }); + factory.setBeanFactory(this.beanFactory); return factory.getObject(); } diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/reactor/ReactorSleuth.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/reactor/ReactorSleuth.java index 1643cd1a7..bde24fc1c 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/reactor/ReactorSleuth.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/reactor/ReactorSleuth.java @@ -79,21 +79,20 @@ public abstract class ReactorSleuth { // rest of the logic unchanged... if (beanFactory.isActive()) { if (log.isTraceEnabled()) { - log.trace( - "Spring Context [" + beanFactory + "] already refreshed. Creating a scope " - + "passing span subscriber with Reactor Context " - + "[" + sub.currentContext() - + "] and name [" + scannable.name() - + "]"); + log.trace("Spring Context [" + beanFactory + + "] already refreshed. Creating a scope " + + "passing span subscriber with Reactor Context " + + "[" + sub.currentContext() + "] and name [" + + scannable.name() + "]"); } return scopePassingSpanSubscription(beanFactory, scannable, sub).get(); } if (log.isTraceEnabled()) { - log.trace( - "Spring Context [" + beanFactory + "] is not yet refreshed, falling back to lazy span subscriber. Reactor Context is [" - + sub.currentContext() + "] and name is [" - + scannable.name() + "]"); + log.trace("Spring Context [" + beanFactory + + "] is not yet refreshed, falling back to lazy span subscriber. Reactor Context is [" + + sub.currentContext() + "] and name is [" + + scannable.name() + "]"); } return new LazySpanSubscriber(scopePassingSpanSubscription( beanFactory, scannable, sub)); diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/reactor/SpanSubscriptionProvider.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/reactor/SpanSubscriptionProvider.java index 5fb1773bc..851439bbd 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/reactor/SpanSubscriptionProvider.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/reactor/SpanSubscriptionProvider.java @@ -52,7 +52,8 @@ class SpanSubscriptionProvider implements Supplier> { this.context = context; this.name = name; if (log.isTraceEnabled()) { - log.trace("Spring context [" + beanFactory + "], Reactor context [" + context + "], name [" + name + "]"); + log.trace("Spring context [" + beanFactory + "], Reactor context [" + context + + "], name [" + name + "]"); } } diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/reactor/TraceReactorAutoConfiguration.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/reactor/TraceReactorAutoConfiguration.java index 3b3bea264..24c3cf540 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/reactor/TraceReactorAutoConfiguration.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/reactor/TraceReactorAutoConfiguration.java @@ -73,7 +73,9 @@ public class TraceReactorAutoConfiguration { static HookRegisteringBeanDefinitionRegistryPostProcessor traceHookRegisteringBeanDefinitionRegistryPostProcessor( ConfigurableApplicationContext context) { if (log.isTraceEnabled()) { - log.trace("Registering bean definition registry post processor for context [" + context + "]"); + log.trace( + "Registering bean definition registry post processor for context [" + + context + "]"); } return new HookRegisteringBeanDefinitionRegistryPostProcessor(context); } diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/TraceWebFilter.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/TraceWebFilter.java index 7f73e3274..a67627843 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/TraceWebFilter.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/TraceWebFilter.java @@ -131,7 +131,7 @@ public final class TraceWebFilter implements WebFilter, Ordered { @Override public Mono filter(ServerWebExchange exchange, WebFilterChain chain) { - if (tracer().currentSpan() != null) { + if (tracer().currentSpan() != null) { // clear any previous trace tracer().withSpanInScope(null); } diff --git a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/async/ExecutorBeanPostProcessorTests.java b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/async/ExecutorBeanPostProcessorTests.java index 0873c58de..50b0bb2b7 100644 --- a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/async/ExecutorBeanPostProcessorTests.java +++ b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/async/ExecutorBeanPostProcessorTests.java @@ -34,6 +34,7 @@ import org.springframework.beans.factory.BeanFactory; import org.springframework.cloud.sleuth.DefaultSpanNamer; import org.springframework.cloud.sleuth.SpanNamer; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; +import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler; import org.springframework.util.ClassUtils; import static org.assertj.core.api.BDDAssertions.then; diff --git a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/reactor/Issue866Configuration.java b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/reactor/Issue866Configuration.java index de0a0906f..73438d971 100644 --- a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/reactor/Issue866Configuration.java +++ b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/reactor/Issue866Configuration.java @@ -42,7 +42,9 @@ public class Issue866Configuration { @Bean HookRegisteringBeanDefinitionRegistryPostProcessor overridingProcessorForTests( ConfigurableApplicationContext context) { - log.info("Registering a HookRegisteringBeanDefinitionRegistryPostProcessor for context [" + context + "]"); + log.info( + "Registering a HookRegisteringBeanDefinitionRegistryPostProcessor for context [" + + context + "]"); TestHook hook = new TestHook(context); Issue866Configuration.hook = hook; return hook; diff --git a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/TraceWebFluxTests.java b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/TraceWebFluxTests.java index 7d2b35404..6641be206 100644 --- a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/TraceWebFluxTests.java +++ b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/TraceWebFluxTests.java @@ -281,8 +281,7 @@ public class TraceWebFluxTests { @RequestMapping("/test") static class TestEndpoint { - private static final Logger log = LoggerFactory - .getLogger(TestEndpoint.class); + private static final Logger log = LoggerFactory.getLogger(TestEndpoint.class); @Autowired Tracer tracer; @@ -333,10 +332,13 @@ class SleuthSpanCreatorAspectWebFlux { .getLog(SleuthSpanCreatorAspectWebFlux.class); private final Tracer tracer; + private final SleuthSpanCreatorAspectWebFlux.AccessLoggingHttpTraceRepository repository; + private final ArrayListSpanReporter reporter; - SleuthSpanCreatorAspectWebFlux(Tracer tracer, AccessLoggingHttpTraceRepository repository, ArrayListSpanReporter reporter) { + SleuthSpanCreatorAspectWebFlux(Tracer tracer, + AccessLoggingHttpTraceRepository repository, ArrayListSpanReporter reporter) { this.tracer = tracer; this.repository = repository; this.reporter = reporter; @@ -359,8 +361,8 @@ class SleuthSpanCreatorAspectWebFlux { this.reporter.clear(); this.repository.clear(); log.info("Running app on port [" + this.port + "]"); - this.webClient = WebTestClient.bindToServer().baseUrl("http://localhost:" + this.port) - .build(); + this.webClient = WebTestClient.bindToServer() + .baseUrl("http://localhost:" + this.port).build(); } public void shouldReturnSpanFromWebFluxTraceContext() { @@ -490,8 +492,8 @@ class SleuthSpanCreatorAspectWebFlux { static class AccessLoggingHttpTraceRepository implements HttpTraceRepository { - private static final Log log = LogFactory - .getLog(SleuthSpanCreatorAspectWebFlux.AccessLoggingHttpTraceRepository.class); + private static final Log log = LogFactory.getLog( + SleuthSpanCreatorAspectWebFlux.AccessLoggingHttpTraceRepository.class); @Autowired Tracer tracer; @@ -551,8 +553,7 @@ class TestBean { log.info("New Span in Subscriber Context"); Long span = tracer.currentSpan().context().spanId(); return Mono.subscriberContext() - .doOnSuccess( - context -> log.info("New Span in deferred Trace Context")) + .doOnSuccess(context -> log.info("New Span in deferred Trace Context")) .flatMap(context -> Mono.defer(() -> Mono.just(span))); }