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