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

shishkovilja pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ignite.git


The following commit(s) were added to refs/heads/master by this push:
     new aa044084996 IGNITE-27317 Refactor serialization for 
TcpDiscoveryAbstractTraceableMessage (#12574)
aa044084996 is described below

commit aa04408499635c86e59cd11cebc05b9402b01514
Author: Vladimir Steshin <[email protected]>
AuthorDate: Wed Jan 28 08:23:10 2026 +0300

    IGNITE-27317 Refactor serialization for 
TcpDiscoveryAbstractTraceableMessage (#12574)
---
 .../discovery/DiscoveryMessageFactory.java         |  3 +++
 .../TcpDiscoveryAbstractTraceableMessage.java      | 24 ++++++++++++++++++++--
 .../tcp/messages/TcpDiscoveryNodeLeftMessage.java  | 14 ++++++++++++-
 3 files changed, 38 insertions(+), 3 deletions(-)

diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/DiscoveryMessageFactory.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/DiscoveryMessageFactory.java
index a31dbf77d13..c1421ae064f 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/DiscoveryMessageFactory.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/DiscoveryMessageFactory.java
@@ -35,6 +35,7 @@ import 
org.apache.ignite.internal.codegen.TcpDiscoveryHandshakeResponseSerialize
 import 
org.apache.ignite.internal.codegen.TcpDiscoveryLoopbackProblemMessageSerializer;
 import 
org.apache.ignite.internal.codegen.TcpDiscoveryMetricsUpdateMessageSerializer;
 import 
org.apache.ignite.internal.codegen.TcpDiscoveryNodeFullMetricsMessageSerializer;
+import 
org.apache.ignite.internal.codegen.TcpDiscoveryNodeLeftMessageSerializer;
 import 
org.apache.ignite.internal.codegen.TcpDiscoveryNodeMetricsMessageSerializer;
 import org.apache.ignite.internal.codegen.TcpDiscoveryPingRequestSerializer;
 import org.apache.ignite.internal.codegen.TcpDiscoveryPingResponseSerializer;
@@ -59,6 +60,7 @@ import 
org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryHandshakeRespons
 import 
org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryLoopbackProblemMessage;
 import 
org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryMetricsUpdateMessage;
 import 
org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryNodeFullMetricsMessage;
+import 
org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryNodeLeftMessage;
 import 
org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryNodeMetricsMessage;
 import org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryPingRequest;
 import org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryPingResponse;
@@ -92,5 +94,6 @@ public class DiscoveryMessageFactory implements 
MessageFactoryProvider {
         factory.register((short)13, 
TcpDiscoveryClientMetricsUpdateMessage::new, new 
TcpDiscoveryClientMetricsUpdateMessageSerializer());
         factory.register((short)14, TcpDiscoveryMetricsUpdateMessage::new, new 
TcpDiscoveryMetricsUpdateMessageSerializer());
         factory.register((short)15, TcpDiscoveryClientAckResponse::new, new 
TcpDiscoveryClientAckResponseSerializer());
+        factory.register((short)16, TcpDiscoveryNodeLeftMessage::new, new 
TcpDiscoveryNodeLeftMessageSerializer());
     }
 }
diff --git 
a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryAbstractTraceableMessage.java
 
b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryAbstractTraceableMessage.java
index 433566d7e30..6b4e9c8872c 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryAbstractTraceableMessage.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryAbstractTraceableMessage.java
@@ -17,10 +17,12 @@
 
 package org.apache.ignite.spi.discovery.tcp.messages;
 
-import java.io.Externalizable;
 import java.util.UUID;
+import org.apache.ignite.internal.Order;
+import org.apache.ignite.internal.managers.discovery.DiscoveryMessageFactory;
 import org.apache.ignite.internal.processors.tracing.messages.SpanContainer;
 import org.apache.ignite.internal.processors.tracing.messages.TraceableMessage;
+import org.jetbrains.annotations.Nullable;
 
 /**
  * Abstract traceable message for TCP discovery.
@@ -29,8 +31,13 @@ public abstract class TcpDiscoveryAbstractTraceableMessage 
extends TcpDiscoveryA
     /** Container. */
     private SpanContainer spanContainer = new SpanContainer();
 
+    /** Serialization holder of {@link #spanContainer}'s bytes. */
+    @SuppressWarnings("unused")
+    @Order(value = 5, method = "spanBytes")
+    private @Nullable byte[] spanBytesHolder;
+
     /**
-     * Default no-arg constructor for {@link Externalizable} interface.
+     * Default constructor for {@link DiscoveryMessageFactory}.
      */
     protected TcpDiscoveryAbstractTraceableMessage() {
         // No-op.
@@ -67,6 +74,19 @@ public abstract class TcpDiscoveryAbstractTraceableMessage 
extends TcpDiscoveryA
         return this;
     }
 
+    /** @return {@link #spanContainer}'s bytes. */
+    public @Nullable byte[] spanBytes() {
+        return spanContainer == null ? null : 
spanContainer.serializedSpanBytes();
+    }
+
+    /** @param spanBytes {@link #spanContainer}'s bytes. */
+    public void spanBytes(@Nullable byte[] spanBytes) {
+        if (spanBytes == null)
+            return;
+
+        spanContainer.serializedSpanBytes(spanBytes);
+    }
+
     /** {@inheritDoc} */
     @Override public SpanContainer spanContainer() {
         return spanContainer;
diff --git 
a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryNodeLeftMessage.java
 
b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryNodeLeftMessage.java
index 5d6df69b715..8e70196ab05 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryNodeLeftMessage.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryNodeLeftMessage.java
@@ -18,7 +18,9 @@
 package org.apache.ignite.spi.discovery.tcp.messages;
 
 import java.util.UUID;
+import org.apache.ignite.internal.managers.discovery.DiscoveryMessageFactory;
 import org.apache.ignite.internal.util.typedef.internal.S;
+import org.apache.ignite.plugin.extensions.communication.Message;
 
 /**
  * Sent by node that is stopping to coordinator across the ring,
@@ -26,10 +28,15 @@ import org.apache.ignite.internal.util.typedef.internal.S;
  */
 @TcpDiscoveryEnsureDelivery
 @TcpDiscoveryRedirectToClient
-public class TcpDiscoveryNodeLeftMessage extends 
TcpDiscoveryAbstractTraceableMessage {
+public class TcpDiscoveryNodeLeftMessage extends 
TcpDiscoveryAbstractTraceableMessage implements Message {
     /** */
     private static final long serialVersionUID = 0L;
 
+    /** Constructor for {@link DiscoveryMessageFactory}. */
+    public TcpDiscoveryNodeLeftMessage() {
+        // No-op.
+    }
+
     /**
      * Constructor.
      *
@@ -39,6 +46,11 @@ public class TcpDiscoveryNodeLeftMessage extends 
TcpDiscoveryAbstractTraceableMe
         super(creatorNodeId);
     }
 
+    /** {@inheritDoc} */
+    @Override public short directType() {
+        return 16;
+    }
+
     /** {@inheritDoc} */
     @Override public String toString() {
         return S.toString(TcpDiscoveryNodeLeftMessage.class, this, "super", 
super.toString());

Reply via email to