muyun12 commented on a change in pull request #7003:
URL: https://github.com/apache/skywalking/pull/7003#discussion_r638895005



##########
File path: 
apm-sniffer/bootstrap-plugins/jdk-threading-plugin/src/main/java/org/apache/skywalking/apm/plugin/jdk/threading/ThreadingMethodInterceptor.java
##########
@@ -34,11 +34,10 @@
     public void beforeMethod(final EnhancedInstance objInst, final Method 
method, final Object[] allArguments,
         final Class<?>[] argumentsTypes, final MethodInterceptResult result) {
 
-        AbstractSpan span = 
ContextManager.createLocalSpan(generateOperationName(objInst, method));
-        span.setComponent(ComponentsDefine.JDK_THREADING);
-
         final Object storedField = objInst.getSkyWalkingDynamicField();
         if (storedField != null) {
+            AbstractSpan span = 
ContextManager.createLocalSpan(generateOperationName(objInst, method));
+            span.setComponent(ComponentsDefine.JDK_THREADING);

Review comment:
       `beforeMethod` should always create local span,otherwise the trace of 
some scenarios will be missing. Just make sure that `afterMethod` calls the 
`ContextManager.stopSpan()` method to clear the `ContextManager`'s `CONTEXT` 
and `RUNTIME_CONTEXT` reference, it won't cause a memory leak.




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to