From ffd9764e1e3ecb78bc777b715b8935e1c0b22f9f Mon Sep 17 00:00:00 2001 From: Alex Abashev Date: Tue, 24 Feb 2026 23:19:57 +0300 Subject: [PATCH 1/4] IGNITE-27971 Use message serializer for MappingAcceptedMessage --- .../discovery/DiscoveryMessageFactory.java | 4 ++ .../marshaller/MappingAcceptedMessage.java | 38 ++++++++++++++++--- 2 files changed, 37 insertions(+), 5 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 a225c1abec7bf..0c84712d1f5b1 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 @@ -17,6 +17,8 @@ package org.apache.ignite.internal.managers.discovery; +import org.apache.ignite.internal.processors.marshaller.MappingAcceptedMessage; +import org.apache.ignite.internal.processors.marshaller.MappingAcceptedMessageSerializer; import org.apache.ignite.plugin.extensions.communication.MessageFactory; import org.apache.ignite.plugin.extensions.communication.MessageFactoryProvider; import org.apache.ignite.spi.discovery.tcp.internal.DiscoveryDataPacket; @@ -113,5 +115,7 @@ public class DiscoveryMessageFactory implements MessageFactoryProvider { factory.register((short)18, TcpDiscoveryStatusCheckMessage::new, new TcpDiscoveryStatusCheckMessageSerializer()); factory.register((short)19, TcpDiscoveryNodeAddFinishedMessage::new, new TcpDiscoveryNodeAddFinishedMessageSerializer()); factory.register((short)20, TcpDiscoveryJoinRequestMessage::new, new TcpDiscoveryJoinRequestMessageSerializer()); + + factory.register(MappingAcceptedMessage.DIRECT_TYPE, MappingAcceptedMessage::new, new MappingAcceptedMessageSerializer()); } } diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/marshaller/MappingAcceptedMessage.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/marshaller/MappingAcceptedMessage.java index 7af0559752b3c..4ed10abe49e89 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/marshaller/MappingAcceptedMessage.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/marshaller/MappingAcceptedMessage.java @@ -17,12 +17,14 @@ package org.apache.ignite.internal.processors.marshaller; +import org.apache.ignite.internal.Order; import org.apache.ignite.internal.managers.discovery.DiscoCache; import org.apache.ignite.internal.managers.discovery.DiscoveryCustomMessage; import org.apache.ignite.internal.managers.discovery.GridDiscoveryManager; import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion; import org.apache.ignite.internal.util.typedef.internal.S; import org.apache.ignite.lang.IgniteUuid; +import org.apache.ignite.plugin.extensions.communication.Message; import org.jetbrains.annotations.Nullable; /** @@ -30,21 +32,42 @@ * * If any nodes were waiting for this mapping to be accepted they will be unblocked on receiving this message. */ -public class MappingAcceptedMessage implements DiscoveryCustomMessage { +public class MappingAcceptedMessage implements DiscoveryCustomMessage, Message { + /** */ + public static final short DIRECT_TYPE = 515; + /** */ private static final long serialVersionUID = 0L; /** */ - private final IgniteUuid id = IgniteUuid.randomUuid(); + @Order(0) + IgniteUuid id; + + /** */ + @Order(1) + byte platformId; + + /** */ + @Order(2) + int typeId; /** */ - private final MarshallerMappingItem item; + @Order(3) + String clsName; + + /** */ + public MappingAcceptedMessage() { + // No-op. + } /** * @param item Item. */ MappingAcceptedMessage(MarshallerMappingItem item) { - this.item = item; + this.id = IgniteUuid.randomUuid(); + this.platformId = item.platformId(); + this.typeId = item.typeId(); + this.clsName = item.className(); } /** {@inheritDoc} */ @@ -70,7 +93,12 @@ public class MappingAcceptedMessage implements DiscoveryCustomMessage { /** */ MarshallerMappingItem getMappingItem() { - return item; + return new MarshallerMappingItem(platformId, typeId, clsName); + } + + /** {@inheritDoc} */ + @Override public short directType() { + return DIRECT_TYPE; } /** {@inheritDoc} */ From 2797d797abcbf3978cc000daa7724c06eadd13af Mon Sep 17 00:00:00 2001 From: Alex Abashev Date: Wed, 4 Mar 2026 18:06:42 +0300 Subject: [PATCH 2/4] Apply comments --- .../managers/discovery/DiscoveryMessageFactory.java | 6 +++--- .../marshaller/MappingAcceptedMessage.java | 13 +++++-------- 2 files changed, 8 insertions(+), 11 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 ad2e6941e5fc3..fcd13743bff44 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 @@ -31,12 +31,12 @@ import org.apache.ignite.internal.processors.cache.binary.MetadataRemoveProposedMessageSerializer; import org.apache.ignite.internal.processors.cache.binary.MetadataUpdateAcceptedMessage; import org.apache.ignite.internal.processors.cache.binary.MetadataUpdateAcceptedMessageSerializer; +import org.apache.ignite.internal.processors.marshaller.MappingAcceptedMessage; +import org.apache.ignite.internal.processors.marshaller.MappingAcceptedMessageSerializer; import org.apache.ignite.internal.processors.query.schema.message.SchemaFinishDiscoveryMessage; import org.apache.ignite.internal.processors.query.schema.message.SchemaFinishDiscoveryMessageSerializer; import org.apache.ignite.internal.processors.query.schema.message.SchemaProposeDiscoveryMessage; import org.apache.ignite.internal.processors.query.schema.message.SchemaProposeDiscoveryMessageSerializer; -import org.apache.ignite.internal.processors.marshaller.MappingAcceptedMessage; -import org.apache.ignite.internal.processors.marshaller.MappingAcceptedMessageSerializer; import org.apache.ignite.plugin.extensions.communication.MessageFactory; import org.apache.ignite.plugin.extensions.communication.MessageFactoryProvider; import org.apache.ignite.spi.discovery.tcp.internal.DiscoveryDataPacket; @@ -155,7 +155,7 @@ public class DiscoveryMessageFactory implements MessageFactoryProvider { new MetadataUpdateAcceptedMessageSerializer()); factory.register((short)509, TxTimeoutOnPartitionMapExchangeChangeMessage::new, new TxTimeoutOnPartitionMapExchangeChangeMessageSerializer()); - factory.register(MappingAcceptedMessage.DIRECT_TYPE, MappingAcceptedMessage::new, new MappingAcceptedMessageSerializer()); + factory.register((short)510, MappingAcceptedMessage::new, new MappingAcceptedMessageSerializer()); } } diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/marshaller/MappingAcceptedMessage.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/marshaller/MappingAcceptedMessage.java index 4ed10abe49e89..3a8c128b650db 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/marshaller/MappingAcceptedMessage.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/marshaller/MappingAcceptedMessage.java @@ -33,9 +33,6 @@ * If any nodes were waiting for this mapping to be accepted they will be unblocked on receiving this message. */ public class MappingAcceptedMessage implements DiscoveryCustomMessage, Message { - /** */ - public static final short DIRECT_TYPE = 515; - /** */ private static final long serialVersionUID = 0L; @@ -64,10 +61,10 @@ public MappingAcceptedMessage() { * @param item Item. */ MappingAcceptedMessage(MarshallerMappingItem item) { - this.id = IgniteUuid.randomUuid(); - this.platformId = item.platformId(); - this.typeId = item.typeId(); - this.clsName = item.className(); + id = IgniteUuid.randomUuid(); + platformId = item.platformId(); + typeId = item.typeId(); + clsName = item.className(); } /** {@inheritDoc} */ @@ -98,7 +95,7 @@ MarshallerMappingItem getMappingItem() { /** {@inheritDoc} */ @Override public short directType() { - return DIRECT_TYPE; + return 510; } /** {@inheritDoc} */ From 6765908eb1728ad02e4a73ff620f636e7f47fcee Mon Sep 17 00:00:00 2001 From: Alex Abashev Date: Thu, 5 Mar 2026 11:10:58 +0300 Subject: [PATCH 3/4] Fix tests --- .../internal/processors/marshaller/MappingAcceptedMessage.java | 2 +- .../cache/IgniteMarshallerCacheClientRequestsMappingTest.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/marshaller/MappingAcceptedMessage.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/marshaller/MappingAcceptedMessage.java index 3a8c128b650db..5e041162a3132 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/marshaller/MappingAcceptedMessage.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/marshaller/MappingAcceptedMessage.java @@ -89,7 +89,7 @@ public MappingAcceptedMessage() { } /** */ - MarshallerMappingItem getMappingItem() { + public MarshallerMappingItem getMappingItem() { return new MarshallerMappingItem(platformId, typeId, clsName); } diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteMarshallerCacheClientRequestsMappingTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteMarshallerCacheClientRequestsMappingTest.java index 5dc0d6bf69e5d..2ddadb16fd248 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteMarshallerCacheClientRequestsMappingTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteMarshallerCacheClientRequestsMappingTest.java @@ -168,7 +168,7 @@ private void doTestMarshallingBinaryMappingsLoadedFromClient(boolean receiveMeta DiscoveryCustomMessage delegate = U.unwrapCustomMessage(evtMsg.message()); if (delegate instanceof MappingAcceptedMessage) { - MarshallerMappingItem item = GridTestUtils.getFieldValue(delegate, "item"); + MarshallerMappingItem item = ((MappingAcceptedMessage) delegate).getMappingItem(); if (item.className().equals(PERSON_CLASS_NAME) || item.className().equals(ORGANIZATION_CLASS_NAME) || From 190ff9e2c0add3e3b993a771ec7ec55800faff2c Mon Sep 17 00:00:00 2001 From: Alex Abashev Date: Thu, 5 Mar 2026 22:02:27 +0300 Subject: [PATCH 4/4] Fix conflicts --- .../internal/managers/discovery/DiscoveryMessageFactory.java | 3 +-- .../internal/processors/marshaller/MappingAcceptedMessage.java | 2 +- .../cache/IgniteMarshallerCacheClientRequestsMappingTest.java | 2 +- 3 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 a5d888492208c..6ca9c3e58a56a 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 @@ -170,7 +170,6 @@ public class DiscoveryMessageFactory implements MessageFactoryProvider { new TxTimeoutOnPartitionMapExchangeChangeMessageSerializer()); factory.register((short)510, UserAcceptedMessage::new, new UserAcceptedMessageSerializer()); factory.register((short)511, UserProposedMessage::new, new UserProposedMessageSerializer()); - factory.register((short)510, MappingAcceptedMessage::new, new MappingAcceptedMessageSerializer()); - + factory.register((short)512, MappingAcceptedMessage::new, new MappingAcceptedMessageSerializer()); } } diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/marshaller/MappingAcceptedMessage.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/marshaller/MappingAcceptedMessage.java index 5e041162a3132..12f99f5f503f6 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/marshaller/MappingAcceptedMessage.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/marshaller/MappingAcceptedMessage.java @@ -95,7 +95,7 @@ public MarshallerMappingItem getMappingItem() { /** {@inheritDoc} */ @Override public short directType() { - return 510; + return 512; } /** {@inheritDoc} */ diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteMarshallerCacheClientRequestsMappingTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteMarshallerCacheClientRequestsMappingTest.java index 2ddadb16fd248..658c56872e66c 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteMarshallerCacheClientRequestsMappingTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteMarshallerCacheClientRequestsMappingTest.java @@ -168,7 +168,7 @@ private void doTestMarshallingBinaryMappingsLoadedFromClient(boolean receiveMeta DiscoveryCustomMessage delegate = U.unwrapCustomMessage(evtMsg.message()); if (delegate instanceof MappingAcceptedMessage) { - MarshallerMappingItem item = ((MappingAcceptedMessage) delegate).getMappingItem(); + MarshallerMappingItem item = ((MappingAcceptedMessage)delegate).getMappingItem(); if (item.className().equals(PERSON_CLASS_NAME) || item.className().equals(ORGANIZATION_CLASS_NAME) ||