You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by sd...@apache.org on 2022/01/11 23:56:41 UTC

[ignite-3] 13/27: - refactor mark/reset a bit

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

sdanilov pushed a commit to branch uos-network
in repository https://gitbox.apache.org/repos/asf/ignite-3.git

commit 10df1f877fd853e6286409d721e30a32db923cc9
Author: Roman Puchkovskiy <ro...@gmail.com>
AuthorDate: Tue Jan 11 13:45:33 2022 +0400

    - refactor mark/reset a bit
---
 .../network/serialization/marshal/BuiltInContainerMarshallers.java    | 4 ++--
 .../internal/network/serialization/marshal/BuiltInMarshalling.java    | 4 ++--
 .../internal/network/serialization/marshal/ProtocolMarshalling.java   | 3 +++
 .../internal/network/serialization/marshal/UnmarshallingContext.java  | 4 ++--
 4 files changed, 9 insertions(+), 6 deletions(-)

diff --git a/modules/network/src/main/java/org/apache/ignite/internal/network/serialization/marshal/BuiltInContainerMarshallers.java b/modules/network/src/main/java/org/apache/ignite/internal/network/serialization/marshal/BuiltInContainerMarshallers.java
index 426e46a..184b0f6 100644
--- a/modules/network/src/main/java/org/apache/ignite/internal/network/serialization/marshal/BuiltInContainerMarshallers.java
+++ b/modules/network/src/main/java/org/apache/ignite/internal/network/serialization/marshal/BuiltInContainerMarshallers.java
@@ -165,7 +165,7 @@ class BuiltInContainerMarshallers {
     ) throws IOException {
         IntFunction<C> collectionFactory = requiredCollectionFactory(collectionDescriptor);
 
-        context.markSource();
+        context.markSource(ProtocolMarshalling.MAX_LENGTH_BYTE_COUNT);
 
         C collection = BuiltInMarshalling.preInstantiateCollection(input, collectionFactory);
 
@@ -212,7 +212,7 @@ class BuiltInContainerMarshallers {
     ) throws IOException {
         IntFunction<M> mapFactory = requiredMapFactory(mapDescriptor);
 
-        context.markSource();
+        context.markSource(ProtocolMarshalling.MAX_LENGTH_BYTE_COUNT);
 
         M map = BuiltInMarshalling.preInstantiateMap(input, mapFactory);
 
diff --git a/modules/network/src/main/java/org/apache/ignite/internal/network/serialization/marshal/BuiltInMarshalling.java b/modules/network/src/main/java/org/apache/ignite/internal/network/serialization/marshal/BuiltInMarshalling.java
index 3aebf83..05fe05a 100644
--- a/modules/network/src/main/java/org/apache/ignite/internal/network/serialization/marshal/BuiltInMarshalling.java
+++ b/modules/network/src/main/java/org/apache/ignite/internal/network/serialization/marshal/BuiltInMarshalling.java
@@ -364,7 +364,7 @@ class BuiltInMarshalling {
     }
 
     static <T, C extends Collection<T>> C preInstantiateCollection(DataInput input, IntFunction<C> collectionFactory) throws IOException {
-        int length = input.readInt();
+        int length = ProtocolMarshalling.readLength(input);
         return collectionFactory.apply(length);
     }
 
@@ -413,7 +413,7 @@ class BuiltInMarshalling {
     }
 
     static <K, V, M extends Map<K, V>> M preInstantiateMap(DataInput input, IntFunction<M> mapFactory) throws IOException {
-        int length = input.readInt();
+        int length = ProtocolMarshalling.readLength(input);
         return mapFactory.apply(length);
     }
 
diff --git a/modules/network/src/main/java/org/apache/ignite/internal/network/serialization/marshal/ProtocolMarshalling.java b/modules/network/src/main/java/org/apache/ignite/internal/network/serialization/marshal/ProtocolMarshalling.java
index c4bc2f3..57574c5 100644
--- a/modules/network/src/main/java/org/apache/ignite/internal/network/serialization/marshal/ProtocolMarshalling.java
+++ b/modules/network/src/main/java/org/apache/ignite/internal/network/serialization/marshal/ProtocolMarshalling.java
@@ -25,6 +25,9 @@ import java.io.IOException;
  * Protocol-wide elements marshalling.
  */
 class ProtocolMarshalling {
+    /** Maximum number of bytes needed to encode a container length. */
+    static final int MAX_LENGTH_BYTE_COUNT = 4;
+
     static void writeDescriptorOrCommandId(int id, DataOutput output) throws IOException {
         output.writeInt(id);
     }
diff --git a/modules/network/src/main/java/org/apache/ignite/internal/network/serialization/marshal/UnmarshallingContext.java b/modules/network/src/main/java/org/apache/ignite/internal/network/serialization/marshal/UnmarshallingContext.java
index 9dd093d..d6bfb7b 100644
--- a/modules/network/src/main/java/org/apache/ignite/internal/network/serialization/marshal/UnmarshallingContext.java
+++ b/modules/network/src/main/java/org/apache/ignite/internal/network/serialization/marshal/UnmarshallingContext.java
@@ -67,8 +67,8 @@ class UnmarshallingContext implements IdIndexedDescriptors {
         return (T) result;
     }
 
-    public void markSource() {
-        source.mark(4);
+    public void markSource(int readAheadLimit) {
+        source.mark(readAheadLimit);
     }
 
     public void resetSourceToMark() {