This is an automated email from the ASF dual-hosted git repository.
shishkovilja 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 ed020d7a2f9 IGNITE-27292 Use MessageSerializer for
TcpDiscoveryConnectionCheckMessage (#12581)
ed020d7a2f9 is described below
commit ed020d7a2f944c9fb5929bd806d9fae36f970dd7
Author: Vladimir Steshin <[email protected]>
AuthorDate: Tue Dec 16 13:01:58 2025 +0300
IGNITE-27292 Use MessageSerializer for TcpDiscoveryConnectionCheckMessage
(#12581)
---
.../internal/MessageSerializerGenerator.java | 12 ++++++--
.../ignite/internal/IgniteDiagnosticRequest.java | 22 +++++----------
.../internal/direct/DirectMessageReader.java | 14 ++++++++-
.../internal/direct/DirectMessageWriter.java | 6 ++++
.../direct/stream/DirectByteBufferStream.java | 33 ++++++++++++++++++++--
.../discovery/DiscoveryMessageFactory.java | 3 ++
.../processors/cluster/ClusterProcessor.java | 3 +-
.../extensions/communication/MessageReader.java | 18 +++++++++---
.../extensions/communication/MessageWriter.java | 13 ++++++++-
.../tcp/messages/TcpDiscoveryAbstractMessage.java | 3 +-
.../TcpDiscoveryConnectionCheckMessage.java | 19 ++++---------
.../AbstractMessageSerializationTest.java | 13 +++++++++
.../resources/codegen/TestCollectionsMessage.java | 23 +++++++++++++++
.../codegen/TestCollectionsMessageSerializer.java | 28 ++++++++++++++++++
14 files changed, 168 insertions(+), 42 deletions(-)
diff --git
a/modules/codegen2/src/main/java/org/apache/ignite/internal/MessageSerializerGenerator.java
b/modules/codegen2/src/main/java/org/apache/ignite/internal/MessageSerializerGenerator.java
index 4591382105b..d0c0d14e3b3 100644
---
a/modules/codegen2/src/main/java/org/apache/ignite/internal/MessageSerializerGenerator.java
+++
b/modules/codegen2/src/main/java/org/apache/ignite/internal/MessageSerializerGenerator.java
@@ -388,7 +388,11 @@ class MessageSerializerGenerator {
imports.add("org.apache.ignite.plugin.extensions.communication.MessageCollectionItemType");
- returnFalseIfWriteFailed(write, "writer.writeCollection",
getExpr,
+ String collectionWriter = assignableFrom(erasedType(type),
type(Set.class.getName()))
+ ? "writer.writeSet"
+ : "writer.writeCollection";
+
+ returnFalseIfWriteFailed(write, collectionWriter, getExpr,
"MessageCollectionItemType." +
messageCollectionItemType(typeArgs.get(0)));
}
@@ -526,7 +530,11 @@ class MessageSerializerGenerator {
assert typeArgs.size() == 1;
- returnFalseIfReadFailed(name, "reader.readCollection",
+ String collectionReader = assignableFrom(erasedType(type),
type(Set.class.getName()))
+ ? "reader.readSet"
+ : "reader.readCollection";
+
+ returnFalseIfReadFailed(name, collectionReader,
"MessageCollectionItemType." +
messageCollectionItemType(typeArgs.get(0)));
}
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/IgniteDiagnosticRequest.java
b/modules/core/src/main/java/org/apache/ignite/internal/IgniteDiagnosticRequest.java
index 528329174e9..5f34d24c2a0 100644
---
a/modules/core/src/main/java/org/apache/ignite/internal/IgniteDiagnosticRequest.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/IgniteDiagnosticRequest.java
@@ -18,11 +18,11 @@
package org.apache.ignite.internal;
import java.util.ArrayList;
-import java.util.Collection;
import java.util.LinkedHashMap;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;
+import java.util.Set;
import java.util.UUID;
import org.apache.ignite.internal.managers.communication.GridIoMessageFactory;
import org.apache.ignite.internal.util.typedef.internal.S;
@@ -43,7 +43,7 @@ public class IgniteDiagnosticRequest implements Message {
/** Infos to send to a remote node. */
@Order(2)
- private @Nullable LinkedHashSet<DiagnosticBaseInfo> infos;
+ private @Nullable Set<DiagnosticBaseInfo> infos;
/** Local message related to remote info. */
private final Map<Object, List<String>> msgs = new LinkedHashMap<>();
@@ -71,12 +71,12 @@ public class IgniteDiagnosticRequest implements Message {
* @param nodeId Node ID.
* @param infos Diagnostic infos.
*/
- public IgniteDiagnosticRequest(long futId, UUID nodeId, @Nullable
Collection<DiagnosticBaseInfo> infos) {
+ public IgniteDiagnosticRequest(long futId, UUID nodeId, @Nullable
Set<DiagnosticBaseInfo> infos) {
this(nodeId);
this.futId = futId;
- infos(infos);
+ this.infos = infos;
}
/**
@@ -142,21 +142,13 @@ public class IgniteDiagnosticRequest implements Message {
}
/** @return Compound diagnostic infos. */
- public @Nullable Collection<DiagnosticBaseInfo> infos() {
+ public @Nullable Set<DiagnosticBaseInfo> infos() {
return infos;
}
/** Sets compound diagnostic infos. */
- public void infos(@Nullable Collection<DiagnosticBaseInfo> infos) {
- // Deserialization supports only `Collection` interface in
MessageReader#readCollection.
- this.infos = toLinkedHashSet(infos);
- }
-
- /** */
- private static @Nullable LinkedHashSet<DiagnosticBaseInfo>
toLinkedHashSet(@Nullable Collection<DiagnosticBaseInfo> infos) {
- return infos == null
- ? null
- : infos instanceof LinkedHashSet ?
(LinkedHashSet<DiagnosticBaseInfo>)infos : new LinkedHashSet<>(infos);
+ public void infos(@Nullable Set<DiagnosticBaseInfo> infos) {
+ this.infos = infos;
}
/** {@inheritDoc} */
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/direct/DirectMessageReader.java
b/modules/core/src/main/java/org/apache/ignite/internal/direct/DirectMessageReader.java
index ec42277634c..24d97da7b2d 100644
---
a/modules/core/src/main/java/org/apache/ignite/internal/direct/DirectMessageReader.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/direct/DirectMessageReader.java
@@ -21,6 +21,7 @@ import java.nio.ByteBuffer;
import java.util.BitSet;
import java.util.Collection;
import java.util.Map;
+import java.util.Set;
import java.util.UUID;
import org.apache.ignite.internal.direct.state.DirectMessageState;
import org.apache.ignite.internal.direct.state.DirectMessageStateItem;
@@ -372,13 +373,24 @@ public class DirectMessageReader implements MessageReader
{
@Override public <C extends Collection<?>> C
readCollection(MessageCollectionItemType itemType) {
DirectByteBufferStream stream = state.item().stream;
- C col = stream.readCollection(itemType, this);
+ C col = stream.readList(itemType, this);
lastRead = stream.lastFinished();
return col;
}
+ /** {@inheritDoc} */
+ @Override public <SET extends Set<?>> SET
readSet(MessageCollectionItemType itemType) {
+ DirectByteBufferStream stream = state.item().stream;
+
+ SET set = stream.readSet(itemType, this);
+
+ lastRead = stream.lastFinished();
+
+ return set;
+ }
+
/** {@inheritDoc} */
@Override public <M extends Map<?, ?>> M readMap(MessageCollectionItemType
keyType,
MessageCollectionItemType valType, boolean linked) {
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/direct/DirectMessageWriter.java
b/modules/core/src/main/java/org/apache/ignite/internal/direct/DirectMessageWriter.java
index 7a4cf9138fb..1da76aa14cf 100644
---
a/modules/core/src/main/java/org/apache/ignite/internal/direct/DirectMessageWriter.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/direct/DirectMessageWriter.java
@@ -21,6 +21,7 @@ import java.nio.ByteBuffer;
import java.util.BitSet;
import java.util.Collection;
import java.util.Map;
+import java.util.Set;
import java.util.UUID;
import org.apache.ignite.internal.direct.state.DirectMessageState;
import org.apache.ignite.internal.direct.state.DirectMessageStateItem;
@@ -345,6 +346,11 @@ public class DirectMessageWriter implements MessageWriter {
return stream.lastFinished();
}
+ /** {@inheritDoc} */
+ @Override public <T> boolean writeSet(Set<T> set,
MessageCollectionItemType itemType) {
+ return writeCollection(set, itemType);
+ }
+
/** {@inheritDoc} */
@Override public <K, V> boolean writeMap(Map<K, V> map,
MessageCollectionItemType keyType,
MessageCollectionItemType valType) {
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/direct/stream/DirectByteBufferStream.java
b/modules/core/src/main/java/org/apache/ignite/internal/direct/stream/DirectByteBufferStream.java
index a95c5e094a1..5c526bf6fd3 100644
---
a/modules/core/src/main/java/org/apache/ignite/internal/direct/stream/DirectByteBufferStream.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/direct/stream/DirectByteBufferStream.java
@@ -22,10 +22,12 @@ import java.nio.ByteBuffer;
import java.util.ArrayList;
import java.util.BitSet;
import java.util.Collection;
+import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.RandomAccess;
+import java.util.Set;
import java.util.UUID;
import org.apache.ignite.IgniteCheckedException;
import org.apache.ignite.IgniteException;
@@ -1601,11 +1603,36 @@ public class DirectByteBufferStream {
}
/**
+ * Reads collection as an {@link ArrayList}.
+ *
+ * @param itemType Item type.
+ * @param reader Reader.
+ * @return {@link ArrayList}.
+ */
+ public <L extends List<?>> L readList(MessageCollectionItemType itemType,
MessageReader reader) {
+ return readCollection(itemType, reader, false);
+ }
+
+ /**
+ * Reads collection as a {@link HashSet}.
+ *
+ * @param itemType Item type.
+ * @param reader Reader.
+ * @return {@link HashSet}.
+ */
+ public <SET extends Set<?>> SET readSet(MessageCollectionItemType
itemType, MessageReader reader) {
+ return readCollection(itemType, reader, true);
+ }
+
+ /**
+ * Reads collection eather as a {@link ArrayList} or a {@link HashSet}.
+ *
* @param itemType Item type.
* @param reader Reader.
- * @return Collection.
+ * @param set Read-as-Set flag.
+ * @return {@link ArrayList} or a {@link HashSet}.
*/
- public <C extends Collection<?>> C
readCollection(MessageCollectionItemType itemType, MessageReader reader) {
+ private <C extends Collection<?>> C
readCollection(MessageCollectionItemType itemType, MessageReader reader,
boolean set) {
if (readSize == -1) {
int size = readInt();
@@ -1617,7 +1644,7 @@ public class DirectByteBufferStream {
if (readSize >= 0) {
if (col == null)
- col = new ArrayList<>(readSize);
+ col = set ? U.newHashSet(readSize) : new ArrayList<>(readSize);
for (int i = readItems; i < readSize; i++) {
Object item = read(itemType, reader);
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 b9661ab1bb3..a858bdb5fce 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 @@ package org.apache.ignite.internal.managers.discovery;
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.TcpDiscoveryLoopbackProblemMessageSerializer;
import org.apache.ignite.internal.codegen.TcpDiscoveryPingRequestSerializer;
import org.apache.ignite.internal.codegen.TcpDiscoveryPingResponseSerializer;
@@ -28,6 +29,7 @@ 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.TcpDiscoveryClientPingRequest;
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.TcpDiscoveryLoopbackProblemMessage;
import org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryPingRequest;
import org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryPingResponse;
@@ -42,5 +44,6 @@ public class DiscoveryMessageFactory implements
MessageFactoryProvider {
factory.register((short)3, TcpDiscoveryClientPingRequest::new, new
TcpDiscoveryClientPingRequestSerializer());
factory.register((short)4, TcpDiscoveryClientPingResponse::new, new
TcpDiscoveryClientPingResponseSerializer());
factory.register((short)5, TcpDiscoveryLoopbackProblemMessage::new,
new TcpDiscoveryLoopbackProblemMessageSerializer());
+ factory.register((short)6, TcpDiscoveryConnectionCheckMessage::new,
new TcpDiscoveryConnectionCheckMessageSerializer());
}
}
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cluster/ClusterProcessor.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cluster/ClusterProcessor.java
index 0055209a81d..5759101b2ca 100644
---
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cluster/ClusterProcessor.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cluster/ClusterProcessor.java
@@ -21,6 +21,7 @@ import java.io.Serializable;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
+import java.util.Set;
import java.util.Timer;
import java.util.UUID;
import java.util.concurrent.ConcurrentHashMap;
@@ -876,7 +877,7 @@ public class ClusterProcessor extends GridProcessorAdapter
implements Distribute
*/
private IgniteInternalFuture<String> sendDiagnosticMessage(
UUID nodeId,
- @Nullable Collection<IgniteDiagnosticRequest.DiagnosticBaseInfo> infos
+ @Nullable Set<IgniteDiagnosticRequest.DiagnosticBaseInfo> infos
) {
try {
IgniteDiagnosticRequest msg = new
IgniteDiagnosticRequest(diagFutId.getAndIncrement(), nodeId, infos);
diff --git
a/modules/core/src/main/java/org/apache/ignite/plugin/extensions/communication/MessageReader.java
b/modules/core/src/main/java/org/apache/ignite/plugin/extensions/communication/MessageReader.java
index b5e4d506be7..c8cad7c0df6 100644
---
a/modules/core/src/main/java/org/apache/ignite/plugin/extensions/communication/MessageReader.java
+++
b/modules/core/src/main/java/org/apache/ignite/plugin/extensions/communication/MessageReader.java
@@ -22,6 +22,7 @@ import java.util.BitSet;
import java.util.Collection;
import java.util.LinkedHashMap;
import java.util.Map;
+import java.util.Set;
import java.util.UUID;
import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion;
import org.apache.ignite.internal.processors.cache.CacheObject;
@@ -226,27 +227,36 @@ public interface MessageReader {
*
* @param itemType Array component type.
* @param itemCls Array component class.
- * @param <T> Type of the red object .
+ * @param <T> Type of the read object.
* @return Array of objects.
*/
public <T> T[] readObjectArray(MessageCollectionItemType itemType,
Class<T> itemCls);
/**
- * Reads collection.
+ * Reads any collection.
*
* @param itemType Collection item type.
- * @param <C> Type of the red collection.
+ * @param <C> Type of the read collection.
* @return Collection.
*/
public <C extends Collection<?>> C
readCollection(MessageCollectionItemType itemType);
+ /**
+ * Reads any collection and provides it as a set.
+ *
+ * @param itemType Set item type.
+ * @param <S> Type of the read set.
+ * @return Set.
+ */
+ public <S extends Set<?>> S readSet(MessageCollectionItemType itemType);
+
/**
* Reads map.
*
* @param keyType Map key type.
* @param valType Map value type.
* @param linked Whether {@link LinkedHashMap} should be created.
- * @param <M> Type of the red map.
+ * @param <M> Type of the read map.
* @return Map.
*/
// TODO: IGNITE-26329 — switch to the new readMap method without the flag
parameter
diff --git
a/modules/core/src/main/java/org/apache/ignite/plugin/extensions/communication/MessageWriter.java
b/modules/core/src/main/java/org/apache/ignite/plugin/extensions/communication/MessageWriter.java
index ad19e865fc6..43fda9736d9 100644
---
a/modules/core/src/main/java/org/apache/ignite/plugin/extensions/communication/MessageWriter.java
+++
b/modules/core/src/main/java/org/apache/ignite/plugin/extensions/communication/MessageWriter.java
@@ -21,6 +21,7 @@ import java.nio.ByteBuffer;
import java.util.BitSet;
import java.util.Collection;
import java.util.Map;
+import java.util.Set;
import java.util.UUID;
import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion;
import org.apache.ignite.internal.processors.cache.CacheObject;
@@ -283,7 +284,7 @@ public interface MessageWriter {
public <T> boolean writeObjectArray(T[] arr, MessageCollectionItemType
itemType);
/**
- * Writes collection.
+ * Writes collection with its elements order.
*
* @param col Collection.
* @param itemType Collection item type.
@@ -292,6 +293,16 @@ public interface MessageWriter {
*/
public <T> boolean writeCollection(Collection<T> col,
MessageCollectionItemType itemType);
+ /**
+ * Writes set with its elements order.
+ *
+ * @param set Set.
+ * @param itemType Set item type.
+ * @param <T> Type of the objects that set contains.
+ * @return Whether value was fully written.
+ */
+ public <T> boolean writeSet(Set<T> set, MessageCollectionItemType
itemType);
+
/**
* Writes map.
*
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 c8fea72ec3c..4abf7a295ad 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
@@ -19,7 +19,6 @@ package org.apache.ignite.spi.discovery.tcp.messages;
import java.io.Externalizable;
import java.io.Serializable;
-import java.util.Collection;
import java.util.HashSet;
import java.util.Set;
import java.util.UUID;
@@ -300,7 +299,7 @@ public abstract class TcpDiscoveryAbstractMessage
implements Serializable {
/**
* @return Failed nodes IDs.
*/
- @Nullable public Collection<UUID> failedNodes() {
+ @Nullable public Set<UUID> failedNodes() {
return failedNodes;
}
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 21079d0aa12..3cf1784da56 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 @@ import
org.apache.ignite.spi.discovery.tcp.internal.TcpDiscoveryNode;
* 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 class TcpDiscoveryConnectionCheckMessage extends
TcpDiscoveryAbstractMess
}
/** {@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 6;
}
/** {@inheritDoc} */
diff --git
a/modules/core/src/test/java/org/apache/ignite/internal/managers/communication/AbstractMessageSerializationTest.java
b/modules/core/src/test/java/org/apache/ignite/internal/managers/communication/AbstractMessageSerializationTest.java
index b7fd6f74daa..4875ec0a465 100644
---
a/modules/core/src/test/java/org/apache/ignite/internal/managers/communication/AbstractMessageSerializationTest.java
+++
b/modules/core/src/test/java/org/apache/ignite/internal/managers/communication/AbstractMessageSerializationTest.java
@@ -21,6 +21,7 @@ import java.util.ArrayList;
import java.util.BitSet;
import java.util.Collection;
import java.util.Map;
+import java.util.Set;
import java.util.UUID;
import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion;
import org.apache.ignite.internal.processors.cache.CacheObject;
@@ -299,6 +300,11 @@ public abstract class AbstractMessageSerializationTest {
return writeField(Collection.class);
}
+ /** {@inheritDoc} */
+ @Override public <T> boolean writeSet(Set<T> set,
MessageCollectionItemType itemType) {
+ return writeField(Set.class);
+ }
+
/** {@inheritDoc} */
@Override public <K, V> boolean writeMap(Map<K, V> map,
MessageCollectionItemType keyType,
MessageCollectionItemType valType) {
@@ -553,6 +559,13 @@ public abstract class AbstractMessageSerializationTest {
return null;
}
+ /** {@inheritDoc} */
+ @Override public <S extends Set<?>> S
readSet(MessageCollectionItemType itemType) {
+ readField(Set.class);
+
+ return null;
+ }
+
/** {@inheritDoc} */
@Override public <M extends Map<?, ?>> M
readMap(MessageCollectionItemType keyType,
MessageCollectionItemType valType, boolean linked) {
diff --git
a/modules/core/src/test/resources/codegen/TestCollectionsMessage.java
b/modules/core/src/test/resources/codegen/TestCollectionsMessage.java
index c7c6ddc287d..358123c8374 100644
--- a/modules/core/src/test/resources/codegen/TestCollectionsMessage.java
+++ b/modules/core/src/test/resources/codegen/TestCollectionsMessage.java
@@ -19,6 +19,7 @@ package org.apache.ignite.internal;
import java.util.BitSet;
import java.util.List;
+import java.util.Set;
import java.util.UUID;
import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion;
import org.apache.ignite.internal.processors.cache.version.GridCacheVersion;
@@ -96,6 +97,12 @@ public class TestCollectionsMessage implements Message {
@Order(22)
private List<GridLongList> gridLongListList;
+ @Order(23)
+ private Set<Integer> boxedIntegerSet;
+
+ @Order(24)
+ private Set<BitSet> bitSetSet;
+
public List<boolean[]> booleanArrayList() {
return booleanArrayList;
}
@@ -280,6 +287,22 @@ public class TestCollectionsMessage implements Message {
this.gridLongListList = gridLongListList;
}
+ public Set<Integer> boxedIntegerSet() {
+ return boxedIntegerSet;
+ }
+
+ public void boxedIntegerSet(Set<Integer> boxedIntegerSet) {
+ this.boxedIntegerSet = boxedIntegerSet;
+ }
+
+ public Set<BitSet> bitSetSet() {
+ return bitSetSet;
+ }
+
+ public void bitSetSet(Set<BitSet> bitSetSet) {
+ this.bitSetSet = bitSetSet;
+ }
+
public short directType() {
return 0;
}
diff --git
a/modules/core/src/test/resources/codegen/TestCollectionsMessageSerializer.java
b/modules/core/src/test/resources/codegen/TestCollectionsMessageSerializer.java
index fbe5cae6a8f..44d3382c218 100644
---
a/modules/core/src/test/resources/codegen/TestCollectionsMessageSerializer.java
+++
b/modules/core/src/test/resources/codegen/TestCollectionsMessageSerializer.java
@@ -179,6 +179,18 @@ public class TestCollectionsMessageSerializer implements
MessageSerializer {
return false;
writer.incrementState();
+
+ case 23:
+ if (!writer.writeSet(msg.boxedIntegerSet(),
MessageCollectionItemType.INT))
+ return false;
+
+ writer.incrementState();
+
+ case 24:
+ if (!writer.writeSet(msg.bitSetSet(),
MessageCollectionItemType.BIT_SET))
+ return false;
+
+ writer.incrementState();
}
return true;
@@ -368,6 +380,22 @@ public class TestCollectionsMessageSerializer implements
MessageSerializer {
case 22:
msg.gridLongListList(reader.readCollection(MessageCollectionItemType.GRID_LONG_LIST));
+ if (!reader.isLastRead())
+ return false;
+
+ reader.incrementState();
+
+ case 23:
+
msg.boxedIntegerSet(reader.readSet(MessageCollectionItemType.INT));
+
+ if (!reader.isLastRead())
+ return false;
+
+ reader.incrementState();
+
+ case 24:
+
msg.bitSetSet(reader.readSet(MessageCollectionItemType.BIT_SET));
+
if (!reader.isLastRead())
return false;