diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/context/ContextManager.java b/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/context/ContextManager.java index 9c1c6158d38ba3bebd2dfebead92e2b4c31ca925..9c3f48dd562fa3df8ae79877528a0631f8074a9e 100644 --- a/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/context/ContextManager.java +++ b/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/context/ContextManager.java @@ -157,6 +157,10 @@ public class ContextManager implements BootService { return get().awaitFinishAsync(); } + /** + * If not sure has the active span, use this method, will be cause NPE when has no active span, + * use ContextManager::isActive method to determine whether there has the active span. + */ public static AbstractSpan activeSpan() { return get().activeSpan(); } diff --git a/apm-sniffer/optional-plugins/customize-enhance-plugin/src/main/java/org/apache/skywalking/apm/plugin/customize/interceptor/BaseInterceptorMethods.java b/apm-sniffer/optional-plugins/customize-enhance-plugin/src/main/java/org/apache/skywalking/apm/plugin/customize/interceptor/BaseInterceptorMethods.java index 691d44ec5c77360c9088edce9126148870725184..9cf8e4524e13e18a3b573e60e2aebc7f33e99e26 100644 --- a/apm-sniffer/optional-plugins/customize-enhance-plugin/src/main/java/org/apache/skywalking/apm/plugin/customize/interceptor/BaseInterceptorMethods.java +++ b/apm-sniffer/optional-plugins/customize-enhance-plugin/src/main/java/org/apache/skywalking/apm/plugin/customize/interceptor/BaseInterceptorMethods.java @@ -92,7 +92,7 @@ class BaseInterceptorMethods { } void handleMethodException(Throwable t) { - if (ContextManager.activeSpan() != null) { + if (ContextManager.isActive()) { ContextManager.activeSpan().errorOccurred().log(t); } } diff --git a/apm-sniffer/optional-plugins/optional-spring-plugins/optional-spring-cloud/gateway-2.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/spring/cloud/gateway/v2/FilteringWebHandlerInterceptor.java b/apm-sniffer/optional-plugins/optional-spring-plugins/optional-spring-cloud/gateway-2.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/spring/cloud/gateway/v2/FilteringWebHandlerInterceptor.java index 77fddde81f974d654dc9fc9d3d14f308871c555d..8def8432a495a674247f9cafeb5348feecad10c5 100644 --- a/apm-sniffer/optional-plugins/optional-spring-plugins/optional-spring-cloud/gateway-2.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/spring/cloud/gateway/v2/FilteringWebHandlerInterceptor.java +++ b/apm-sniffer/optional-plugins/optional-spring-plugins/optional-spring-cloud/gateway-2.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/spring/cloud/gateway/v2/FilteringWebHandlerInterceptor.java @@ -42,9 +42,8 @@ public class FilteringWebHandlerInterceptor implements InstanceMethodsAroundInte ServerWebExchange exchange = (ServerWebExchange) allArguments[0]; Route route = exchange.getRequiredAttribute(GATEWAY_ROUTE_ATTR); - AbstractSpan span = ContextManager.activeSpan(); - if (span != null) { - span.tag("route", route.getId()); + if (ContextManager.isActive()) { + ContextManager.activeSpan().tag("route", route.getId()); } }