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;
}