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

sergeychugunov 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 6e3e09600ca IGNITE-27677 Use message serializer for StatusCheckMessage 
(#12658)
6e3e09600ca is described below

commit 6e3e09600cae373b48dcf4bf8d84bd2a983c47fb
Author: Vladimir Steshin <[email protected]>
AuthorDate: Thu Feb 5 10:18:55 2026 +0300

    IGNITE-27677 Use message serializer for StatusCheckMessage (#12658)
---
 .../discovery/DiscoveryMessageFactory.java         |  3 +
 .../ignite/spi/discovery/tcp/ServerImpl.java       |  4 +-
 .../messages/TcpDiscoveryStatusCheckMessage.java   | 76 +++++++++++++++++-----
 3 files changed, 64 insertions(+), 19 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 06cdf3e25d3..90bfb8636be 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
@@ -41,6 +41,7 @@ import 
org.apache.ignite.internal.codegen.TcpDiscoveryNodeMetricsMessageSerializ
 import org.apache.ignite.internal.codegen.TcpDiscoveryPingRequestSerializer;
 import org.apache.ignite.internal.codegen.TcpDiscoveryPingResponseSerializer;
 import 
org.apache.ignite.internal.codegen.TcpDiscoveryRingLatencyCheckMessageSerializer;
+import 
org.apache.ignite.internal.codegen.TcpDiscoveryStatusCheckMessageSerializer;
 import org.apache.ignite.plugin.extensions.communication.MessageFactory;
 import 
org.apache.ignite.plugin.extensions.communication.MessageFactoryProvider;
 import org.apache.ignite.spi.discovery.tcp.messages.InetAddressMessage;
@@ -67,6 +68,7 @@ import 
org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryNodeMetricsMessa
 import org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryPingRequest;
 import org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryPingResponse;
 import 
org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryRingLatencyCheckMessage;
+import 
org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryStatusCheckMessage;
 
 /** Message factory for discovery messages. */
 public class DiscoveryMessageFactory implements MessageFactoryProvider {
@@ -98,5 +100,6 @@ public class DiscoveryMessageFactory implements 
MessageFactoryProvider {
         factory.register((short)15, TcpDiscoveryClientAckResponse::new, new 
TcpDiscoveryClientAckResponseSerializer());
         factory.register((short)16, TcpDiscoveryNodeLeftMessage::new, new 
TcpDiscoveryNodeLeftMessageSerializer());
         factory.register((short)17, TcpDiscoveryNodeFailedMessage::new, new 
TcpDiscoveryNodeFailedMessageSerializer());
+        factory.register((short)18, TcpDiscoveryStatusCheckMessage::new, new 
TcpDiscoveryStatusCheckMessageSerializer());
     }
 }
diff --git 
a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java
 
b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java
index 0a24730a12c..08982a5f6aa 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java
@@ -5717,7 +5717,7 @@ class ServerImpl extends TcpDiscoveryImpl {
 
                                 if (F.contains(msg.failedNodes(), 
msg.creatorNodeId())) {
                                     msg0 = 
createTcpDiscoveryStatusCheckMessage(
-                                        msg.creatorNode(),
+                                        null,
                                         msg.creatorNodeId(),
                                         msg.failedNodeId());
 
@@ -5736,7 +5736,7 @@ class ServerImpl extends TcpDiscoveryImpl {
                                 }
 
                                 try {
-                                    
trySendMessageDirectly(msg0.creatorNodeAddrs(), msg0.creatorNodeId(), msg0);
+                                    
trySendMessageDirectly(msg0.creatorNodeAddresses(), msg0.creatorNodeId(), msg0);
 
                                     if (log.isDebugEnabled())
                                         log.debug("Responded to status check 
message " +
diff --git 
a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryStatusCheckMessage.java
 
b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryStatusCheckMessage.java
index 35b854e3c78..8d04b4f6d90 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryStatusCheckMessage.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryStatusCheckMessage.java
@@ -21,8 +21,11 @@ import java.net.InetSocketAddress;
 import java.util.Collection;
 import java.util.Objects;
 import java.util.UUID;
+import java.util.stream.Collectors;
+import org.apache.ignite.internal.Order;
+import org.apache.ignite.internal.managers.discovery.DiscoveryMessageFactory;
 import org.apache.ignite.internal.util.typedef.internal.S;
-import org.apache.ignite.spi.discovery.tcp.internal.TcpDiscoveryNode;
+import org.apache.ignite.plugin.extensions.communication.Message;
 import org.jetbrains.annotations.Nullable;
 
 /**
@@ -33,7 +36,7 @@ import org.jetbrains.annotations.Nullable;
  * If a failed node id is specified then the message is sent across the ring 
up to the sender node
  * to ensure that the failed node is actually failed.
  */
-public class TcpDiscoveryStatusCheckMessage extends 
TcpDiscoveryAbstractMessage {
+public class TcpDiscoveryStatusCheckMessage extends 
TcpDiscoveryAbstractMessage implements Message {
     /** */
     private static final long serialVersionUID = 0L;
 
@@ -43,18 +46,23 @@ public class TcpDiscoveryStatusCheckMessage extends 
TcpDiscoveryAbstractMessage
     /** Status RECONNECT. */
     public static final int STATUS_RECON = 2;
 
-    /** Creator node. */
-    private final TcpDiscoveryNode creatorNode;
-
     /** Creator node addresses. */
-    private final Collection<InetSocketAddress> creatorNodeAddrs;
+    @Order(value = 5, method = "creatorNodeAddressesMessages")
+    @Nullable private Collection<InetSocketAddressMessage> 
creatorNodeAddrsMsgs;
 
     /** Failed node id. */
-    private final UUID failedNodeId;
+    @Order(6)
+    @Nullable private UUID failedNodeId;
 
     /** Creator node status (initialized by coordinator). */
+    @Order(7)
     private int status;
 
+    /** Empty constructor for {@link DiscoveryMessageFactory}. */
+    public TcpDiscoveryStatusCheckMessage() {
+       // No-op.
+    }
+
     /**
      * Constructor.
      *
@@ -62,21 +70,32 @@ public class TcpDiscoveryStatusCheckMessage extends 
TcpDiscoveryAbstractMessage
      * @param creatorNodeId Creator node ID.
      * @param failedNodeId Failed node id.
      */
-    public TcpDiscoveryStatusCheckMessage(UUID creatorNodeId, 
Collection<InetSocketAddress> creatorNodeAddrs, UUID failedNodeId) {
+    public TcpDiscoveryStatusCheckMessage(
+        UUID creatorNodeId,
+        @Nullable Collection<InetSocketAddress> creatorNodeAddrs,
+        @Nullable UUID failedNodeId
+    ) {
         super(creatorNodeId);
 
-        this.creatorNodeAddrs = creatorNodeAddrs;
-        this.creatorNode = null;
+        if (creatorNodeAddrs != null) {
+            creatorNodeAddrsMsgs = creatorNodeAddrs.stream().map(a -> new 
InetSocketAddressMessage(a.getAddress(), a.getPort()))
+                .collect(Collectors.toList());
+        }
+
         this.failedNodeId = failedNodeId;
     }
 
     /**
-     * Gets creator node.
+     * Gets creator node addresses.
      *
-     * @return Creator node.
+     * @return Creator node addresses.
      */
-    public @Nullable TcpDiscoveryNode creatorNode() {
-        return creatorNode;
+    public @Nullable Collection<InetSocketAddress> creatorNodeAddresses() {
+        if (creatorNodeAddrsMsgs == null)
+            return null;
+
+        return creatorNodeAddrsMsgs.stream().map(m -> new 
InetSocketAddress(m.address(), m.port()))
+            .collect(Collectors.toList());
     }
 
     /**
@@ -84,8 +103,17 @@ public class TcpDiscoveryStatusCheckMessage extends 
TcpDiscoveryAbstractMessage
      *
      * @return Creator node addresses.
      */
-    public Collection<InetSocketAddress> creatorNodeAddrs() {
-        return creatorNodeAddrs;
+    public @Nullable Collection<InetSocketAddressMessage> 
creatorNodeAddressesMessages() {
+        return creatorNodeAddrsMsgs;
+    }
+
+    /**
+     * Sets creator node addresses.
+     *
+     * @param creatorNodeAddrsMsgs Creator node addresses.
+     */
+    public void creatorNodeAddressesMessages(@Nullable 
Collection<InetSocketAddressMessage> creatorNodeAddrsMsgs) {
+        this.creatorNodeAddrsMsgs = creatorNodeAddrsMsgs;
     }
 
     /**
@@ -93,10 +121,19 @@ public class TcpDiscoveryStatusCheckMessage extends 
TcpDiscoveryAbstractMessage
      *
      * @return Failed node id.
      */
-    public UUID failedNodeId() {
+    public @Nullable UUID failedNodeId() {
         return failedNodeId;
     }
 
+    /**
+     * Sets failed node id.
+     *
+     * @param failedNodeId Failed node id.
+     */
+    public void failedNodeId(@Nullable UUID failedNodeId) {
+        this.failedNodeId = failedNodeId;
+    }
+
     /**
      * Gets creator status.
      *
@@ -115,6 +152,11 @@ public class TcpDiscoveryStatusCheckMessage extends 
TcpDiscoveryAbstractMessage
         this.status = status;
     }
 
+    /** {@inheritDoc} */
+    @Override public short directType() {
+        return 18;
+    }
+
     /** {@inheritDoc} */
     @Override public boolean equals(Object obj) {
         // NOTE!

Reply via email to