Skip to content

Commit

Permalink
[#10630] Backport: Fix kotlin coroutines dispatch interceptor
Browse files Browse the repository at this point in the history
  • Loading branch information
jaehong-kim committed Jan 22, 2024
1 parent a1f3a91 commit 336f1c9
Showing 1 changed file with 8 additions and 17 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -56,24 +56,21 @@ 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();
if (trace == null) {
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);
}
}
}

Expand All @@ -90,18 +87,14 @@ 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();
if (trace == null) {
return;
}

if (isCompletedContinuation(args)) {
return;
}

try {
final SpanEventRecorder recorder = trace.currentSpanEventRecorder();
recorder.recordApi(descriptor);
Expand All @@ -110,7 +103,5 @@ public void after(Object target, Object[] args, Object result, Throwable throwab
} finally {
trace.traceBlockEnd();
}

}

}

0 comments on commit 336f1c9

Please sign in to comment.