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 ef75310bb192f..1c01592fd0dd5 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 @@ -25,6 +25,7 @@ import org.apache.ignite.internal.codegen.TcpDiscoveryClientPingResponseSerializer; import org.apache.ignite.internal.codegen.TcpDiscoveryConnectionCheckMessageSerializer; import org.apache.ignite.internal.codegen.TcpDiscoveryDiscardMessageSerializer; +import org.apache.ignite.internal.codegen.TcpDiscoveryDuplicateIdMessageSerializer; import org.apache.ignite.internal.codegen.TcpDiscoveryHandshakeRequestSerializer; import org.apache.ignite.internal.codegen.TcpDiscoveryHandshakeResponseSerializer; import org.apache.ignite.internal.codegen.TcpDiscoveryLoopbackProblemMessageSerializer; @@ -41,6 +42,7 @@ import org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryClientPingResponse; import org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryConnectionCheckMessage; import org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryDiscardMessage; +import org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryDuplicateIdMessage; import org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryHandshakeRequest; import org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryHandshakeResponse; import org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryLoopbackProblemMessage; @@ -67,5 +69,6 @@ public class DiscoveryMessageFactory implements MessageFactoryProvider { factory.register((short)9, TcpDiscoveryDiscardMessage::new, new TcpDiscoveryDiscardMessageSerializer()); factory.register((short)10, TcpDiscoveryHandshakeResponse::new, new TcpDiscoveryHandshakeResponseSerializer()); factory.register((short)11, TcpDiscoveryAuthFailedMessage::new, new TcpDiscoveryAuthFailedMessageSerializer()); + factory.register((short)12, TcpDiscoveryDuplicateIdMessage::new, new TcpDiscoveryDuplicateIdMessageSerializer()); } } diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java index 7dff5458b85b1..b8cba5dd83f70 100644 --- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java +++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java @@ -2005,7 +2005,7 @@ protected IgniteSpiException duplicateIdError(TcpDiscoveryDuplicateIdMessage msg .append("(fix configuration and restart local node) [localNode=") .append(locNode) .append(", existingNode=") - .append(msg.node() == null ? msg.nodeId() : msg.node()) + .append(msg.nodeId()) .append(']'); return new IgniteSpiException(errorMsgBldr.toString()); diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryDuplicateIdMessage.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryDuplicateIdMessage.java index f8f1cf5a66b31..c78d1b5284f75 100644 --- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryDuplicateIdMessage.java +++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryDuplicateIdMessage.java @@ -18,36 +18,25 @@ package org.apache.ignite.spi.discovery.tcp.messages; import java.util.UUID; +import org.apache.ignite.internal.Order; 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; /** * Message telling joining node that new topology already contain * different node with same ID. */ -public class TcpDiscoveryDuplicateIdMessage extends TcpDiscoveryAbstractMessage { +public class TcpDiscoveryDuplicateIdMessage extends TcpDiscoveryAbstractMessage implements Message { /** */ private static final long serialVersionUID = 0L; - /** Node with duplicate ID. */ - private final TcpDiscoveryNode node; - /** ID of the node with duplicate ID. */ - private final UUID nodeId; - - /** - * Constructor. - * - * @param creatorNodeId Creator node ID. - * @param node Node with same ID. - */ - public TcpDiscoveryDuplicateIdMessage(UUID creatorNodeId, TcpDiscoveryNode node) { - super(creatorNodeId); + @Order(5) + private UUID nodeId; - assert node != null; - - this.node = node; - this.nodeId = null; + /** */ + public TcpDiscoveryDuplicateIdMessage() { + // No-op. } /** @@ -61,26 +50,30 @@ public TcpDiscoveryDuplicateIdMessage(UUID creatorNodeId, UUID nodeId) { assert nodeId != null; - this.node = null; this.nodeId = nodeId; } /** * @return Node with duplicate ID. */ - public TcpDiscoveryNode node() { - return node; + public UUID nodeId() { + return nodeId; } /** - * @return Node with duplicate ID. + * @param nodeId Node with duplicate ID. */ - public UUID nodeId() { - return nodeId; + public void nodeId(UUID nodeId) { + this.nodeId = nodeId; } /** {@inheritDoc} */ @Override public String toString() { return S.toString(TcpDiscoveryDuplicateIdMessage.class, this, "super", super.toString()); } + + /** {@inheritDoc} */ + @Override public short directType() { + return 12; + } }