This is an automated email from the ASF dual-hosted git repository.

kturner pushed a commit to branch 2.1
in repository https://gitbox.apache.org/repos/asf/accumulo.git


The following commit(s) were added to refs/heads/2.1 by this push:
     new bd9e67637c Fixes class name in trace data (#5361)
bd9e67637c is described below

commit bd9e67637c3ecc9e8a4e8d1ffbee26b8e7e84370
Author: Keith Turner <ktur...@apache.org>
AuthorDate: Fri Feb 28 10:29:36 2025 -0500

    Fixes class name in trace data (#5361)
    
    Trace data for RPCs would include an empty string for the class name
    because TraceProtocolFactory created an anonymous class.  Changed to use
    a named class to make linking trace data to code easier.
---
 .../accumulo/core/rpc/TraceProtocolFactory.java    | 43 +++++++++++++---------
 1 file changed, 25 insertions(+), 18 deletions(-)

diff --git 
a/core/src/main/java/org/apache/accumulo/core/rpc/TraceProtocolFactory.java 
b/core/src/main/java/org/apache/accumulo/core/rpc/TraceProtocolFactory.java
index e7466c62e9..de8e0d7bf0 100644
--- a/core/src/main/java/org/apache/accumulo/core/rpc/TraceProtocolFactory.java
+++ b/core/src/main/java/org/apache/accumulo/core/rpc/TraceProtocolFactory.java
@@ -35,25 +35,32 @@ import io.opentelemetry.context.Scope;
 public class TraceProtocolFactory extends TCompactProtocol.Factory {
   private static final long serialVersionUID = 1L;
 
+  private static class TraceProtocol extends TCompactProtocol {
+
+    private Span span = null;
+    private Scope scope = null;
+
+    public TraceProtocol(TTransport transport) {
+      super(transport);
+    }
+
+    @Override
+    public void writeMessageBegin(TMessage message) throws TException {
+      span = TraceUtil.startClientRpcSpan(this.getClass(), message.name);
+      scope = span.makeCurrent();
+      super.writeMessageBegin(message);
+    }
+
+    @Override
+    public void writeMessageEnd() throws TException {
+      super.writeMessageEnd();
+      scope.close();
+      span.end();
+    }
+  }
+
   @Override
   public TProtocol getProtocol(TTransport trans) {
-    return new TCompactProtocol(trans) {
-      private Span span = null;
-      private Scope scope = null;
-
-      @Override
-      public void writeMessageBegin(TMessage message) throws TException {
-        span = TraceUtil.startClientRpcSpan(this.getClass(), message.name);
-        scope = span.makeCurrent();
-        super.writeMessageBegin(message);
-      }
-
-      @Override
-      public void writeMessageEnd() throws TException {
-        super.writeMessageEnd();
-        scope.close();
-        span.end();
-      }
-    };
+    return new TraceProtocol(trans);
   }
 }

Reply via email to