diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/TraceFilter.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/TraceFilter.java index 390d122ed..062d1f229 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/TraceFilter.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/TraceFilter.java @@ -36,7 +36,6 @@ import org.springframework.cloud.sleuth.event.ServerReceivedEvent; import org.springframework.cloud.sleuth.event.ServerSentEvent; import org.springframework.cloud.sleuth.instrument.TraceKeys; import org.springframework.cloud.sleuth.sampler.IsTracingSampler; -import org.springframework.cloud.sleuth.trace.SpanContextHolder; import org.springframework.context.ApplicationEvent; import org.springframework.context.ApplicationEventPublisher; import org.springframework.context.ApplicationEventPublisherAware; @@ -106,8 +105,6 @@ public class TraceFilter extends OncePerRequestFilter HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException { - // TODO: this should not be necessary - SpanContextHolder.removeCurrentSpan(); String uri = this.urlPathHelper.getPathWithinApplication(request); boolean skip = this.skipPattern.matcher(uri).matches() || getHeader(request, response, Span.NOT_SAMPLED_NAME) != null; diff --git a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/TraceFilterTests.java b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/TraceFilterTests.java index e48742bcf..b9e8401e5 100644 --- a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/TraceFilterTests.java +++ b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/TraceFilterTests.java @@ -116,6 +116,8 @@ public class TraceFilterTests { Span span = this.tracer.startTrace("foo"); this.request.setAttribute(TraceFilter.TRACE_REQUEST_ATTR, span); + // It should have been removed from the thread local context so simulate that + SpanContextHolder.removeCurrentSpan(); TraceFilter filter = new TraceFilter(this.tracer, this.traceKeys); filter.doFilter(this.request, this.response, this.filterChain);