From 606c31b1da0832246991214c1948f0d451866c9f Mon Sep 17 00:00:00 2001 From: leehow1988 Date: Tue, 13 May 2025 10:01:50 +0800 Subject: [PATCH] Update ApacheMonitorFilterAdvice.java Add Apache Dubbo 3+ support --- .../apm/agent/dubbo/advice/ApacheMonitorFilterAdvice.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/apm-agent-plugins/apm-dubbo-plugin/src/main/java/co/elastic/apm/agent/dubbo/advice/ApacheMonitorFilterAdvice.java b/apm-agent-plugins/apm-dubbo-plugin/src/main/java/co/elastic/apm/agent/dubbo/advice/ApacheMonitorFilterAdvice.java index 4ef2f333ee..fcebf93674 100644 --- a/apm-agent-plugins/apm-dubbo-plugin/src/main/java/co/elastic/apm/agent/dubbo/advice/ApacheMonitorFilterAdvice.java +++ b/apm-agent-plugins/apm-dubbo-plugin/src/main/java/co/elastic/apm/agent/dubbo/advice/ApacheMonitorFilterAdvice.java @@ -106,6 +106,13 @@ public static class AsyncCallback implements BiConsumer { @Override public void accept(@Nullable Result result, @Nullable Throwable t) { AbstractSpan span = (AbstractSpan) RpcContext.getContext().get(DubboTraceHelper.SPAN_KEY); + /* + * because of RpcContextAttachment#getAttachment(String) check value type if not string return null + * @see https://github.com/apache/dubbo/blob/dubbo-3.3.4/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/RpcContextAttachment.java#L78 + */ + if (span == null) { + span = (AbstractSpan) RpcContext.getContext().get().get(DubboTraceHelper.SPAN_KEY); + } if(span == null){ return; }