From 5c85f00c04e0a59a830652c1762bdf558143dc73 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E7=A6=B9=E5=85=89?= <769213327@qq.com> Date: Fri, 12 Jul 2019 13:24:48 +0800 Subject: [PATCH] fix --- .../skywalking/apm/agent/core/context/ContextManager.java | 4 ++++ .../plugin/customize/interceptor/BaseInterceptorMethods.java | 2 +- .../cloud/gateway/v2/FilteringWebHandlerInterceptor.java | 5 ++--- 3 files changed, 7 insertions(+), 4 deletions(-) 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 9c1c6158d38b..9c3f48dd562f 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 static AbstractTracerContext awaitFinishAsync(AbstractSpan span) { 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 691d44ec5c77..9cf8e4524e13 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 @@ void afterMethod(Method method) { } 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 77fddde81f97..8def8432a495 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 void beforeMethod(EnhancedInstance objInst, Method method, Object[] allAr 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()); } }