Repository: ignite
Updated Branches:
  refs/heads/master 4153b74e3 -> 8cb4591d6


IGNITE-8886: Binary: fixed footer offset calculation when raw data is present. 
This closes #4643.


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/8cb4591d
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/8cb4591d
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/8cb4591d

Branch: refs/heads/master
Commit: 8cb4591d691e9438fd0bf0809bb105229b4f7ff8
Parents: 4153b74
Author: Ilya Kasnacheev <[email protected]>
Authored: Mon Sep 3 16:50:05 2018 +0300
Committer: devozerov <[email protected]>
Committed: Mon Sep 3 16:50:05 2018 +0300

----------------------------------------------------------------------
 .../internal/binary/BinaryReaderExImpl.java     |  2 +-
 .../binary/BinaryMarshallerSelfTest.java        | 35 ++++++++++++++++++--
 2 files changed, 33 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/8cb4591d/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryReaderExImpl.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryReaderExImpl.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryReaderExImpl.java
index ab1f874..38934f0 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryReaderExImpl.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryReaderExImpl.java
@@ -240,7 +240,7 @@ public class BinaryReaderExImpl implements BinaryReader, 
BinaryRawReaderEx, Bina
                 footerStart = start + offset;
 
                 if (BinaryUtils.hasRaw(flags)) {
-                    footerLen = len - offset - 4;
+                    footerLen = len - offset;
                     rawOff = start + in.readIntPositioned(start + len - 4);
                 }
                 else {

http://git-wip-us.apache.org/repos/asf/ignite/blob/8cb4591d/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryMarshallerSelfTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryMarshallerSelfTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryMarshallerSelfTest.java
index 4a7d5d5..81a087d 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryMarshallerSelfTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryMarshallerSelfTest.java
@@ -3064,6 +3064,33 @@ public class BinaryMarshallerSelfTest extends 
GridCommonAbstractTest {
     /**
      * @throws Exception If failed.
      */
+    public void testMixedRawCollections() throws Exception {
+        Collection<String> excludedClasses = Arrays.asList(
+            ObjectRaw.class.getName(),
+            ObjectWithRaw.class.getName(),
+            Value.class.getName());
+
+        BinaryMarshaller m0 = binaryMarshaller(null, excludedClasses);
+        BinaryMarshaller m1 = binaryMarshaller();
+
+        Value obj = new Value(27);
+        ObjectWithRaw objectWithRaw = new ObjectWithRaw(27, 13);
+        ObjectRaw objectRaw = new ObjectRaw(27, 13);
+
+        Value objOther = new Value(26);
+        ObjectWithRaw objectWithRawOther = new ObjectWithRaw(26, 13);
+        ObjectRaw objectRawOther = new ObjectRaw(26, 13);
+
+        ArrayList collection = new ArrayList(Arrays.asList(
+            obj, objectWithRawOther, objectRaw, objectWithRaw, objectRawOther, 
objOther));
+
+        marshalUnmarshal(collection, m0);
+        marshalUnmarshal(collection, m1);
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
     public void testBinaryEquals() throws Exception {
         Collection<String> excludedClasses = Arrays.asList(
             ObjectRaw.class.getName(),
@@ -5473,8 +5500,10 @@ public class BinaryMarshallerSelfTest extends 
GridCommonAbstractTest {
 
         /** {@inheritDoc} */
         @Override public void readBinary(BinaryReader reader) throws 
BinaryObjectException {
-            val0 = reader.rawReader().readInt();
-            val1 = reader.rawReader().readInt();
+            BinaryRawReader rawReader = reader.rawReader();
+
+            val0 = rawReader.readInt();
+            val1 = rawReader.readInt();
         }
     }
 
@@ -5592,4 +5621,4 @@ public class BinaryMarshallerSelfTest extends 
GridCommonAbstractTest {
             }
         }
     }
-}
\ No newline at end of file
+}

Reply via email to