From 336f1c92df05a8455920b34c0ff868a8e1001a4f Mon Sep 17 00:00:00 2001 From: Jaehong-Kim Date: Mon, 22 Jan 2024 14:44:44 +0900 Subject: [PATCH] [#10630] Backport: Fix kotlin coroutines dispatch interceptor --- .../interceptor/DispatchInterceptor.java | 25 ++++++------------- 1 file changed, 8 insertions(+), 17 deletions(-) diff --git a/plugins/kotlin-coroutines/src/main/java/com/navercorp/pinpoint/plugin/kotlinx/coroutines/interceptor/DispatchInterceptor.java b/plugins/kotlin-coroutines/src/main/java/com/navercorp/pinpoint/plugin/kotlinx/coroutines/interceptor/DispatchInterceptor.java index 9b7b5c9a9d5b..dc1f607f5fa9 100644 --- a/plugins/kotlin-coroutines/src/main/java/com/navercorp/pinpoint/plugin/kotlinx/coroutines/interceptor/DispatchInterceptor.java +++ b/plugins/kotlin-coroutines/src/main/java/com/navercorp/pinpoint/plugin/kotlinx/coroutines/interceptor/DispatchInterceptor.java @@ -56,7 +56,7 @@ public DispatchInterceptor(TraceContext traceContext, MethodDescriptor descripto @Override public void before(Object target, Object[] args) { if (isDebug) { - logger.beforeInterceptor(target, descriptor.getClassName(), descriptor.getMethodName(), descriptor.getParameterDescriptor(), args); + logger.beforeInterceptor(target, args); } Trace trace = traceContext.currentTraceObject(); @@ -64,16 +64,13 @@ public void before(Object target, Object[] args) { return; } - if (isCompletedContinuation(args)) { - return; - } - final SpanEventRecorder recorder = trace.traceBlockBegin(); - recorder.recordServiceType(serviceType); - AsyncContextAccessor accessor = ArrayArgumentUtils.getArgument(args, 0, AsyncContextAccessor.class); - if (accessor != null) { - final AsyncContext asyncContext = recorder.recordNextAsyncContext(); - accessor._$PINPOINT$_setAsyncContext(asyncContext); + if (Boolean.FALSE == isCompletedContinuation(args)) { + AsyncContextAccessor accessor = ArrayArgumentUtils.getArgument(args, 0, AsyncContextAccessor.class); + if (accessor != null) { + final AsyncContext asyncContext = recorder.recordNextAsyncContext(); + accessor._$PINPOINT$_setAsyncContext(asyncContext); + } } } @@ -90,7 +87,7 @@ private boolean isCompletedContinuation(final Object[] args) { @Override public void after(Object target, Object[] args, Object result, Throwable throwable) { if (isDebug) { - logger.afterInterceptor(target, descriptor.getClassName(), descriptor.getMethodName(), descriptor.getParameterDescriptor(), args, result, throwable); + logger.afterInterceptor(target, args); } Trace trace = traceContext.currentTraceObject(); @@ -98,10 +95,6 @@ public void after(Object target, Object[] args, Object result, Throwable throwab return; } - if (isCompletedContinuation(args)) { - return; - } - try { final SpanEventRecorder recorder = trace.currentSpanEventRecorder(); recorder.recordApi(descriptor); @@ -110,7 +103,5 @@ public void after(Object target, Object[] args, Object result, Throwable throwab } finally { trace.traceBlockEnd(); } - } - }