From 6b7239b03dfdc33c90c3918ce196a5cdd4d26777 Mon Sep 17 00:00:00 2001 From: Vladimir Steshin Date: Tue, 9 Dec 2025 14:42:18 +0300 Subject: [PATCH 1/3] raw --- .../discovery/DiscoveryMessageFactory.java | 3 +++ .../TcpDiscoveryConnectionCheckMessage.java | 19 ++++++------------- 2 files changed, 9 insertions(+), 13 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 0f7c864ee5bab..2a136af86d1c1 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 @@ -18,11 +18,13 @@ package org.apache.ignite.internal.managers.discovery; import org.apache.ignite.internal.codegen.TcpDiscoveryCheckFailedMessageSerializer; +import org.apache.ignite.internal.codegen.TcpDiscoveryConnectionCheckMessageSerializer; import org.apache.ignite.internal.codegen.TcpDiscoveryPingRequestSerializer; import org.apache.ignite.internal.codegen.TcpDiscoveryPingResponseSerializer; import org.apache.ignite.plugin.extensions.communication.MessageFactory; import org.apache.ignite.plugin.extensions.communication.MessageFactoryProvider; import org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryCheckFailedMessage; +import org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryConnectionCheckMessage; import org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryPingRequest; import org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryPingResponse; @@ -33,5 +35,6 @@ public class DiscoveryMessageFactory implements MessageFactoryProvider { factory.register((short)0, TcpDiscoveryCheckFailedMessage::new, new TcpDiscoveryCheckFailedMessageSerializer()); factory.register((short)1, TcpDiscoveryPingRequest::new, new TcpDiscoveryPingRequestSerializer()); factory.register((short)2, TcpDiscoveryPingResponse::new, new TcpDiscoveryPingResponseSerializer()); + factory.register((short)3, TcpDiscoveryConnectionCheckMessage::new, new TcpDiscoveryConnectionCheckMessageSerializer()); } } diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryConnectionCheckMessage.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryConnectionCheckMessage.java index 21079d0aa12ef..ab2cb12e36a80 100644 --- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryConnectionCheckMessage.java +++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryConnectionCheckMessage.java @@ -17,11 +17,9 @@ package org.apache.ignite.spi.discovery.tcp.messages; -import java.io.Externalizable; -import java.io.IOException; -import java.io.ObjectInput; -import java.io.ObjectOutput; +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; import org.apache.ignite.spi.discovery.tcp.internal.TcpDiscoveryNode; /** @@ -29,12 +27,12 @@ * The difference from {@link TcpDiscoveryStatusCheckMessage} is that this message is sent to the next node * which directly replies to the sender without message re-translation to the coordinator. */ -public class TcpDiscoveryConnectionCheckMessage extends TcpDiscoveryAbstractMessage implements Externalizable { +public class TcpDiscoveryConnectionCheckMessage extends TcpDiscoveryAbstractMessage implements Message { /** */ private static final long serialVersionUID = 0L; /** - * Default no-arg constructor for {@link Externalizable} interface. + * Default constructor for {@link DiscoveryMessageFactory}. */ public TcpDiscoveryConnectionCheckMessage() { // No-op. @@ -55,13 +53,8 @@ public TcpDiscoveryConnectionCheckMessage(TcpDiscoveryNode creatorNode) { } /** {@inheritDoc} */ - @Override public void writeExternal(ObjectOutput out) throws IOException { - // This method has been left empty intentionally to keep message size at min. - } - - /** {@inheritDoc} */ - @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException { - // This method has been left empty intentionally to keep message size at min. + @Override public short directType() { + return 3; } /** {@inheritDoc} */ From eda8def38c938143f8afdcd46a6ba1938a677686 Mon Sep 17 00:00:00 2001 From: Vladimir Steshin Date: Wed, 10 Dec 2025 15:27:57 +0300 Subject: [PATCH 2/3] class cast fix --- .../discovery/tcp/messages/TcpDiscoveryAbstractMessage.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryAbstractMessage.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryAbstractMessage.java index c8fea72ec3cfd..d15a642a1db83 100644 --- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryAbstractMessage.java +++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryAbstractMessage.java @@ -293,8 +293,10 @@ public void addFailedNode(UUID nodeId) { /** * @param failedNodes Failed nodes. */ - public void failedNodes(@Nullable Set failedNodes) { - this.failedNodes = failedNodes; + public void failedNodes(@Nullable Collection failedNodes) { + this.failedNodes = failedNodes == null + ? null + : failedNodes instanceof Set ? (Set)failedNodes : new HashSet<>(failedNodes); } /** From 0f53fc7adb31c04b183c889a43e2ab239deb7714 Mon Sep 17 00:00:00 2001 From: Vladimir Steshin Date: Wed, 10 Dec 2025 20:35:34 +0300 Subject: [PATCH 3/3] merged master --- .../internal/managers/discovery/DiscoveryMessageFactory.java | 5 ++--- .../tcp/messages/TcpDiscoveryConnectionCheckMessage.java | 2 +- 2 files changed, 3 insertions(+), 4 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 f16ba087042e4..9e7781c125473 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 @@ -20,6 +20,7 @@ import org.apache.ignite.internal.codegen.TcpDiscoveryCheckFailedMessageSerializer; import org.apache.ignite.internal.codegen.TcpDiscoveryClientPingRequestSerializer; import org.apache.ignite.internal.codegen.TcpDiscoveryClientPingResponseSerializer; +import org.apache.ignite.internal.codegen.TcpDiscoveryConnectionCheckMessageSerializer; import org.apache.ignite.internal.codegen.TcpDiscoveryPingRequestSerializer; import org.apache.ignite.internal.codegen.TcpDiscoveryPingResponseSerializer; import org.apache.ignite.plugin.extensions.communication.MessageFactory; @@ -30,8 +31,6 @@ import org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryConnectionCheckMessage; import org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryPingRequest; import org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryPingResponse; -import org.apache.ignite.internal.codegen.TcpDiscoveryConnectionCheckMessageSerializer; -import org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryConnectionCheckMessage; /** Message factory for discovery messages. */ public class DiscoveryMessageFactory implements MessageFactoryProvider { @@ -42,6 +41,6 @@ public class DiscoveryMessageFactory implements MessageFactoryProvider { factory.register((short)2, TcpDiscoveryPingResponse::new, new TcpDiscoveryPingResponseSerializer()); factory.register((short)3, TcpDiscoveryClientPingRequest::new, new TcpDiscoveryClientPingRequestSerializer()); factory.register((short)4, TcpDiscoveryClientPingResponse::new, new TcpDiscoveryClientPingResponseSerializer()); - factory.register((short)3, TcpDiscoveryConnectionCheckMessage::new, new TcpDiscoveryConnectionCheckMessageSerializer()); + factory.register((short)5, TcpDiscoveryConnectionCheckMessage::new, new TcpDiscoveryConnectionCheckMessageSerializer()); } } diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryConnectionCheckMessage.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryConnectionCheckMessage.java index ab2cb12e36a80..191803bf9b3de 100644 --- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryConnectionCheckMessage.java +++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryConnectionCheckMessage.java @@ -54,7 +54,7 @@ public TcpDiscoveryConnectionCheckMessage(TcpDiscoveryNode creatorNode) { /** {@inheritDoc} */ @Override public short directType() { - return 3; + return 5; } /** {@inheritDoc} */