From 7ad0803336ad9f02dddf6eecd38bc528a6918bab Mon Sep 17 00:00:00 2001 From: Marcin Grzejszczak Date: Tue, 20 Dec 2016 15:56:29 +0100 Subject: [PATCH] Added a check for tracing in Trace Filter --- .../cloud/sleuth/instrument/web/TraceFilter.java | 5 +++-- .../cloud/sleuth/instrument/web/TraceHandlerInterceptor.java | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) 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 8e38085f1..d8d5c659c 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 @@ -210,12 +210,13 @@ public class TraceFilter extends GenericFilterBean { } recordParentSpan(span); // in case of a response with exception status will close the span when exception dispatch is handled - if (httpStatusSuccessful(response)) { + // checking if tracing is in progress due to async / different order of view controller processing + if (httpStatusSuccessful(response) && this.tracer.isTracing()) { if (log.isDebugEnabled()) { log.debug("Closing the span " + span + " since the response was successful"); } this.tracer.close(span); - } else if (errorAlreadyHandled(request)) { + } else if (errorAlreadyHandled(request) && this.tracer.isTracing()) { if (log.isDebugEnabled()) { log.debug( "Won't detach the span " + span + " since error has already been handled"); diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/TraceHandlerInterceptor.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/TraceHandlerInterceptor.java index ff5a144f8..69d7fb5c9 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/TraceHandlerInterceptor.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/TraceHandlerInterceptor.java @@ -66,7 +66,7 @@ public class TraceHandlerInterceptor extends HandlerInterceptorAdapter { boolean continueSpan = getRootSpanFromAttribute(request) != null; Span span = continueSpan ? getRootSpanFromAttribute(request) : getTracer().createSpan(spanName); if (log.isDebugEnabled()) { - log.debug("Created new span " + span + " with name [" + spanName + "]"); + log.debug("Handling span " + span); } addClassMethodTag(handler, span); addClassNameTag(handler, span);