From c0ad5875f9a43e8849e6b2be44d41fcf58d8c497 Mon Sep 17 00:00:00 2001 From: emeroad Date: Fri, 13 Jan 2023 18:51:23 +0900 Subject: [PATCH] [#9575] Refactor AsyncTrace --- .../pinpoint/bootstrap/util/ScopeUtils.java | 11 +++++++++++ .../{ScopeUtils.java => AsyncScopeUtils.java} | 8 ++++---- .../profiler/context/DefaultAsyncContext.java | 14 ++++---------- .../profiler/context/DisableAsyncContext.java | 2 +- 4 files changed, 20 insertions(+), 15 deletions(-) rename profiler/src/main/java/com/navercorp/pinpoint/profiler/context/{ScopeUtils.java => AsyncScopeUtils.java} (79%) diff --git a/bootstraps/bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/util/ScopeUtils.java b/bootstraps/bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/util/ScopeUtils.java index 4dd182f562583..df227025d1fbe 100644 --- a/bootstraps/bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/util/ScopeUtils.java +++ b/bootstraps/bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/util/ScopeUtils.java @@ -60,4 +60,15 @@ public static boolean hasScope(final Trace trace, final String scopeName) { final TraceScope scope = trace.getScope(scopeName); return scope != null; } + + public static boolean addScope(Trace trace, String scopeName) { + // add async scope. + final TraceScope oldScope = trace.addScope(scopeName); + if (oldScope != null) { + // delete corrupted trace. +// deleteAsyncTrace(trace); + return false; + } + return true; + } } diff --git a/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/ScopeUtils.java b/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/AsyncScopeUtils.java similarity index 79% rename from profiler/src/main/java/com/navercorp/pinpoint/profiler/context/ScopeUtils.java rename to profiler/src/main/java/com/navercorp/pinpoint/profiler/context/AsyncScopeUtils.java index 982b022ba1b52..7c576feca53df 100644 --- a/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/ScopeUtils.java +++ b/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/AsyncScopeUtils.java @@ -5,13 +5,13 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -public final class ScopeUtils { - private static final Logger logger = LogManager.getLogger(ScopeUtils.class); +public final class AsyncScopeUtils { + private static final Logger logger = LogManager.getLogger(AsyncScopeUtils.class); - private ScopeUtils() { + private AsyncScopeUtils() { } - public static boolean nestedScope(Trace trace, String scopeName) { + public static boolean nested(Trace trace, String scopeName) { // add async scope. final TraceScope oldScope = trace.addScope(scopeName); if (oldScope != null) { diff --git a/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/DefaultAsyncContext.java b/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/DefaultAsyncContext.java index 9cddf09ecc2dd..fafee65a13931 100644 --- a/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/DefaultAsyncContext.java +++ b/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/DefaultAsyncContext.java @@ -89,7 +89,7 @@ private Trace newAsyncContextTrace(Reference reference) { logger.debug("asyncTraceContext.continuAsyncTraceObject(e) AsyncTrace:{}", asyncTrace); } - if (ScopeUtils.nestedScope(asyncTrace, ASYNC_TRACE_SCOPE)) { + if (AsyncScopeUtils.nested(asyncTrace, ASYNC_TRACE_SCOPE)) { return null; } @@ -112,21 +112,15 @@ private void bind(Reference reference, Trace asyncTrace) { @Override public Trace currentAsyncTraceObject() { - final Reference reference = currentTraceObject(); - return reference.get(); - } - - - private Reference currentTraceObject() { final Reference reference = binder.get(); final Trace trace = reference.get(); if (trace == null) { - return DefaultReference.emptyReference(); + return null; } if (trace.canSampled()) { - return reference; + return trace; } - return DefaultReference.emptyReference(); + return null; } diff --git a/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/DisableAsyncContext.java b/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/DisableAsyncContext.java index b84f1ce636026..908ace7112665 100644 --- a/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/DisableAsyncContext.java +++ b/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/DisableAsyncContext.java @@ -43,7 +43,7 @@ private Trace newAsyncContextTrace(Reference reference) { logger.debug("asyncTraceContext.continueDisableAsyncContextTraceObject() AsyncTrace:{}", asyncTrace); } - if (ScopeUtils.nestedScope(asyncTrace, ASYNC_TRACE_SCOPE)) { + if (AsyncScopeUtils.nested(asyncTrace, ASYNC_TRACE_SCOPE)) { return null; }