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

namelchev 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 1f1c2e10481 IGNITE-27415 Use MessageSerializer for 
TcpDiscoveryAuthFailedMessage (#12605)
1f1c2e10481 is described below

commit 1f1c2e10481645eb04d0fb7de9f087fe55d38b40
Author: Nikita Amelchev <[email protected]>
AuthorDate: Thu Dec 25 10:12:06 2025 +0300

    IGNITE-27415 Use MessageSerializer for TcpDiscoveryAuthFailedMessage 
(#12605)
---
 .../discovery/DiscoveryMessageFactory.java         |  6 ++
 .../ignite/spi/discovery/tcp/ServerImpl.java       |  4 +-
 .../ignite/spi/discovery/tcp/TcpDiscoverySpi.java  |  2 +-
 .../discovery/tcp/messages/InetAddressMessage.java | 42 +++++--------
 ...sMessage.java => InetSocketAddressMessage.java} | 57 ++++--------------
 .../messages/TcpDiscoveryAuthFailedMessage.java    | 68 ++++++++++++----------
 .../messages/TcpDiscoveryHandshakeResponse.java    | 19 ++----
 7 files changed, 74 insertions(+), 124 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 0881c80259b..ef75310bb19 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,6 +18,8 @@
 package org.apache.ignite.internal.managers.discovery;
 
 import org.apache.ignite.internal.codegen.InetAddressMessageSerializer;
+import org.apache.ignite.internal.codegen.InetSocketAddressMessageSerializer;
+import 
org.apache.ignite.internal.codegen.TcpDiscoveryAuthFailedMessageSerializer;
 import 
org.apache.ignite.internal.codegen.TcpDiscoveryCheckFailedMessageSerializer;
 import 
org.apache.ignite.internal.codegen.TcpDiscoveryClientPingRequestSerializer;
 import 
org.apache.ignite.internal.codegen.TcpDiscoveryClientPingResponseSerializer;
@@ -32,6 +34,8 @@ import 
org.apache.ignite.internal.codegen.TcpDiscoveryRingLatencyCheckMessageSer
 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;
+import org.apache.ignite.spi.discovery.tcp.messages.InetSocketAddressMessage;
+import 
org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryAuthFailedMessage;
 import 
org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryCheckFailedMessage;
 import 
org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryClientPingRequest;
 import 
org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryClientPingResponse;
@@ -48,6 +52,7 @@ import 
org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryRingLatencyCheck
 public class DiscoveryMessageFactory implements MessageFactoryProvider {
     /** {@inheritDoc} */
     @Override public void registerAll(MessageFactory factory) {
+        factory.register((short)-101, InetSocketAddressMessage::new, new 
InetSocketAddressMessageSerializer());
         factory.register((short)-100, InetAddressMessage::new, new 
InetAddressMessageSerializer());
 
         factory.register((short)0, TcpDiscoveryCheckFailedMessage::new, new 
TcpDiscoveryCheckFailedMessageSerializer());
@@ -61,5 +66,6 @@ public class DiscoveryMessageFactory implements 
MessageFactoryProvider {
         factory.register((short)8, TcpDiscoveryHandshakeRequest::new, new 
TcpDiscoveryHandshakeRequestSerializer());
         factory.register((short)9, TcpDiscoveryDiscardMessage::new, new 
TcpDiscoveryDiscardMessageSerializer());
         factory.register((short)10, TcpDiscoveryHandshakeResponse::new, new 
TcpDiscoveryHandshakeResponseSerializer());
+        factory.register((short)11, TcpDiscoveryAuthFailedMessage::new, new 
TcpDiscoveryAuthFailedMessageSerializer());
     }
 }
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 473ff153357..aef67a57809 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
@@ -3340,7 +3340,7 @@ class ServerImpl extends TcpDiscoveryImpl {
          */
         private void processAuthFailedMessage(TcpDiscoveryAuthFailedMessage 
authFailedMsg) {
             try {
-                sendDirectlyToClient(authFailedMsg.getTargetNodeId(), 
authFailedMsg);
+                sendDirectlyToClient(authFailedMsg.targetNodeId(), 
authFailedMsg);
             }
             catch (IgniteSpiException ex) {
                 log.warning(
@@ -7174,7 +7174,7 @@ class ServerImpl extends TcpDiscoveryImpl {
                                     mux.notifyAll();
                                 }
                                 else {
-                                    UUID targetNode = 
((TcpDiscoveryAuthFailedMessage)msg).getTargetNodeId();
+                                    UUID targetNode = 
((TcpDiscoveryAuthFailedMessage)msg).targetNodeId();
 
                                     if (targetNode == null || 
targetNode.equals(locNodeId)) {
                                         if (log.isDebugEnabled())
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 49c0127b821..7dff5458b85 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
@@ -2019,7 +2019,7 @@ public class TcpDiscoverySpi extends IgniteSpiAdapter 
implements IgniteDiscovery
         assert msg != null;
 
         return new IgniteSpiException(new 
IgniteAuthenticationException("Authentication failed [nodeId=" +
-            msg.creatorNodeId() + ", addr=" + msg.address().getHostAddress() + 
']'));
+            msg.creatorNodeId() + ", addr=" + 
msg.creatorAddress().getHostAddress() + ']'));
     }
 
     /**
diff --git 
a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/InetAddressMessage.java
 
b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/InetAddressMessage.java
index 9479ad3268b..2903e94fcf9 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/InetAddressMessage.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/InetAddressMessage.java
@@ -19,6 +19,7 @@ package org.apache.ignite.spi.discovery.tcp.messages;
 
 import java.net.InetAddress;
 import java.net.UnknownHostException;
+import org.apache.ignite.IgniteException;
 import org.apache.ignite.internal.Order;
 import org.apache.ignite.internal.managers.discovery.DiscoveryMessageFactory;
 import org.apache.ignite.internal.util.typedef.internal.S;
@@ -31,29 +32,17 @@ public class InetAddressMessage implements Message {
     private String hostName;
 
     /** */
-    @Order(1)
-    private int port;
-
-    /** */
-    @Order(value = 2, method = "addressBytes")
+    @Order(value = 1, method = "addressBytes")
     private byte[] addrBytes;
 
-    /**
-     * Default constructor for {@link DiscoveryMessageFactory}.
-     */
+    /** Default constructor for {@link DiscoveryMessageFactory}. */
     public InetAddressMessage() {
         // No-op.
     }
 
-    /**
-     * Constructor.
-     *
-     * @param addr Address.
-     * @param port Port.
-     */
-    public InetAddressMessage(InetAddress addr, int port) {
+    /** @param addr Address. */
+    public InetAddressMessage(InetAddress addr) {
         hostName = addr.getHostName();
-        this.port = port;
         addrBytes = addr.getAddress();
     }
 
@@ -67,14 +56,14 @@ public class InetAddressMessage implements Message {
         this.addrBytes = addrBytes;
     }
 
-    /** @return port. */
-    public int port() {
-        return port;
-    }
-
-    /** @param port port. */
-    public void port(int port) {
-        this.port = port;
+    /** @return {@link InetAddress#getByAddress(String, byte[])} */
+    public InetAddress address() {
+        try {
+            return addrBytes == null ? null : 
InetAddress.getByAddress(hostName, addrBytes);
+        }
+        catch (UnknownHostException e) {
+            throw new IgniteException("Failed to read host address.", e);
+        }
     }
 
     /** @return Host name. */
@@ -87,11 +76,6 @@ public class InetAddressMessage implements Message {
         this.hostName = hostName;
     }
 
-    /** @return {@link InetAddress#getByAddress(String, byte[])} */
-    public InetAddress address() throws UnknownHostException {
-        return addrBytes == null ? null : InetAddress.getByAddress(hostName, 
addrBytes);
-    }
-
     /** {@inheritDoc} */
     @Override public short directType() {
         return -100;
diff --git 
a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/InetAddressMessage.java
 
b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/InetSocketAddressMessage.java
similarity index 52%
copy from 
modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/InetAddressMessage.java
copy to 
modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/InetSocketAddressMessage.java
index 9479ad3268b..1ecb819b0bd 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/InetAddressMessage.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/InetSocketAddressMessage.java
@@ -18,30 +18,20 @@
 package org.apache.ignite.spi.discovery.tcp.messages;
 
 import java.net.InetAddress;
-import java.net.UnknownHostException;
 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.plugin.extensions.communication.Message;
 
-/** Address utility container message. Is not a pure {@link 
TcpDiscoveryAbstractMessage}. */
-public class InetAddressMessage implements Message {
+/** Socket address utility container message. Is not a pure {@link 
TcpDiscoveryAbstractMessage}. */
+public class InetSocketAddressMessage extends InetAddressMessage {
     /** */
-    @Order(0)
-    private String hostName;
-
-    /** */
-    @Order(1)
+    @Order(2)
     private int port;
 
-    /** */
-    @Order(value = 2, method = "addressBytes")
-    private byte[] addrBytes;
-
     /**
      * Default constructor for {@link DiscoveryMessageFactory}.
      */
-    public InetAddressMessage() {
+    public InetSocketAddressMessage() {
         // No-op.
     }
 
@@ -51,54 +41,29 @@ public class InetAddressMessage implements Message {
      * @param addr Address.
      * @param port Port.
      */
-    public InetAddressMessage(InetAddress addr, int port) {
-        hostName = addr.getHostName();
-        this.port = port;
-        addrBytes = addr.getAddress();
-    }
-
-    /** @return {@link InetAddress#getAddress()} */
-    public byte[] addressBytes() {
-        return addrBytes;
-    }
+    public InetSocketAddressMessage(InetAddress addr, int port) {
+        super(addr);
 
-    /** @param addrBytes {@link InetAddress#getAddress()} */
-    public void addressBytes(byte[] addrBytes) {
-        this.addrBytes = addrBytes;
+        this.port = port;
     }
 
-    /** @return port. */
+    /** @return Port. */
     public int port() {
         return port;
     }
 
-    /** @param port port. */
+    /** @param port Port. */
     public void port(int port) {
         this.port = port;
     }
 
-    /** @return Host name. */
-    public String hostName() {
-        return hostName;
-    }
-
-    /** @param hostName Host name. */
-    public void hostName(String hostName) {
-        this.hostName = hostName;
-    }
-
-    /** @return {@link InetAddress#getByAddress(String, byte[])} */
-    public InetAddress address() throws UnknownHostException {
-        return addrBytes == null ? null : InetAddress.getByAddress(hostName, 
addrBytes);
-    }
-
     /** {@inheritDoc} */
     @Override public short directType() {
-        return -100;
+        return -101;
     }
 
     /** {@inheritDoc} */
     @Override public String toString() {
-        return S.toString(InetAddressMessage.class, this);
+        return S.toString(InetSocketAddressMessage.class, this);
     }
 }
diff --git 
a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryAuthFailedMessage.java
 
b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryAuthFailedMessage.java
index 3416965f816..a11045294f4 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryAuthFailedMessage.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryAuthFailedMessage.java
@@ -17,71 +17,75 @@
 
 package org.apache.ignite.spi.discovery.tcp.messages;
 
-import java.io.IOException;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
 import java.net.InetAddress;
 import java.util.UUID;
+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.internal.util.typedef.internal.U;
+import org.apache.ignite.plugin.extensions.communication.Message;
 
 /**
- * Message telling joining node that its authentication failed on coordinator.
+ * Message telling joining node that its authentication failed.
  */
-public class TcpDiscoveryAuthFailedMessage extends TcpDiscoveryAbstractMessage 
{
+public class TcpDiscoveryAuthFailedMessage extends TcpDiscoveryAbstractMessage 
implements Message {
     /** */
     private static final long serialVersionUID = 0L;
 
-    /** Coordinator address. */
-    private transient InetAddress addr;
+    /** Creator address. */
+    @Order(value = 5, method = "creatorAddressMessage")
+    private InetAddressMessage creatorAddrMsg;
 
     /** Node id for which authentication was failed. */
+    @Order(6)
     private UUID targetNodeId;
 
+    /** Default constructor for {@link DiscoveryMessageFactory}. */
+    public TcpDiscoveryAuthFailedMessage() {
+        // No-op.
+    }
+
     /**
      * Constructor.
      *
      * @param creatorNodeId Creator node ID.
-     * @param addr Coordinator address.
+     * @param creatorAddr Creator address.
      * @param targetNodeId Node for which authentication was failed.
      */
-    public TcpDiscoveryAuthFailedMessage(UUID creatorNodeId, InetAddress addr, 
UUID targetNodeId) {
+    public TcpDiscoveryAuthFailedMessage(UUID creatorNodeId, InetAddress 
creatorAddr, UUID targetNodeId) {
         super(creatorNodeId);
 
-        this.addr = addr;
+        this.creatorAddrMsg = new InetAddressMessage(creatorAddr);
         this.targetNodeId = targetNodeId;
     }
 
-    /**
-     * @return Node for which authentication was failed.
-     */
-    public UUID getTargetNodeId() {
+    /** @return Node for which authentication was failed. */
+    public UUID targetNodeId() {
         return targetNodeId;
     }
 
-    /**
-     * @return Coordinator address.
-     */
-    public InetAddress address() {
-        return addr;
+    /** @param targetNodeId Node for which authentication was failed. */
+    public void targetNodeId(UUID targetNodeId) {
+        this.targetNodeId = targetNodeId;
     }
 
-    /**
-     * Serialize this message.
-     */
-    private void writeObject(ObjectOutputStream out) throws IOException {
-        out.defaultWriteObject();
+    /** @return Creator address message. */
+    public InetAddressMessage creatorAddressMessage() {
+        return creatorAddrMsg;
+    }
 
-        U.writeByteArray(out, addr.getAddress());
+    /** @param addr Creator address message. */
+    public void creatorAddressMessage(InetAddressMessage addr) {
+        this.creatorAddrMsg = addr;
     }
 
-    /**
-     * Deserialize this message.
-     */
-    private void readObject(ObjectInputStream in) throws IOException, 
ClassNotFoundException {
-        in.defaultReadObject();
+    /** @return Creator address. */
+    public InetAddress creatorAddress() {
+        return creatorAddrMsg.address();
+    }
 
-        addr = InetAddress.getByAddress(U.readByteArray(in));
+    /** {@inheritDoc} */
+    @Override public short directType() {
+        return 11;
     }
 
     /** {@inheritDoc} */
diff --git 
a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryHandshakeResponse.java
 
b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryHandshakeResponse.java
index eaa7038c5e6..5a291cf7127 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryHandshakeResponse.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryHandshakeResponse.java
@@ -18,10 +18,8 @@
 package org.apache.ignite.spi.discovery.tcp.messages;
 
 import java.net.InetSocketAddress;
-import java.net.UnknownHostException;
 import java.util.Collection;
 import java.util.UUID;
-import org.apache.ignite.IgniteException;
 import org.apache.ignite.internal.Order;
 import org.apache.ignite.internal.managers.discovery.DiscoveryMessageFactory;
 import org.apache.ignite.internal.util.typedef.F;
@@ -46,7 +44,7 @@ public class TcpDiscoveryHandshakeResponse extends 
TcpDiscoveryAbstractMessage i
 
     /** Redirect addresses messages serialization holder. */
     @Order(value = 7, method = "redirectAddressesMessages")
-    private @Nullable Collection<InetAddressMessage> redirectAddrsMsgs;
+    private @Nullable Collection<InetSocketAddressMessage> redirectAddrsMsgs;
 
     /**
      * Default constructor for {@link DiscoveryMessageFactory}.
@@ -109,30 +107,23 @@ public class TcpDiscoveryHandshakeResponse extends 
TcpDiscoveryAbstractMessage i
     public @Nullable Collection<InetSocketAddress> redirectAddresses() {
         return F.isEmpty(redirectAddrsMsgs)
             ? null
-            : F.transform(redirectAddrsMsgs, msg -> {
-                try {
-                    return new InetSocketAddress(msg.address(), msg.port());
-                }
-                catch (UnknownHostException e) {
-                    throw new IgniteException("Failed to read host address.", 
e);
-                }
-            });
+            : F.transform(redirectAddrsMsgs, msg -> new 
InetSocketAddress(msg.address(), msg.port()));
     }
 
     /** @param sockAddrs Socket addresses list for redirect. */
     public void redirectAddresses(@Nullable Collection<InetSocketAddress> 
sockAddrs) {
         redirectAddrsMsgs = sockAddrs == null
             ? null
-            : F.viewReadOnly(sockAddrs, addr -> new 
InetAddressMessage(addr.getAddress(), addr.getPort()));
+            : F.viewReadOnly(sockAddrs, addr -> new 
InetSocketAddressMessage(addr.getAddress(), addr.getPort()));
     }
 
     /** @return Collection of {@link InetAddressMessage}. */
-    public @Nullable Collection<InetAddressMessage> 
redirectAddressesMessages() {
+    public @Nullable Collection<InetSocketAddressMessage> 
redirectAddressesMessages() {
         return redirectAddrsMsgs;
     }
 
     /** @param redirectAddrsMsgs Collection of {@link InetAddressMessage}. */
-    public void redirectAddressesMessages(@Nullable 
Collection<InetAddressMessage> redirectAddrsMsgs) {
+    public void redirectAddressesMessages(@Nullable 
Collection<InetSocketAddressMessage> redirectAddrsMsgs) {
         this.redirectAddrsMsgs = redirectAddrsMsgs;
     }
 

Reply via email to