[ https://issues.apache.org/jira/browse/IGNITE-16057?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17457068#comment-17457068 ]
Nikolay Izhikov commented on IGNITE-16057: ------------------------------------------ [~vermakov] Yes. I will take a look shortly. > Second read of array field from BinaryObject fail > ------------------------------------------------- > > Key: IGNITE-16057 > URL: https://issues.apache.org/jira/browse/IGNITE-16057 > Project: Ignite > Issue Type: Bug > Reporter: Nikolay Izhikov > Assignee: Vladimir Ermakov > Priority: Blocker > Labels: ise > > Second read of array field fail and read some garbage. > This happen because when object read with handle stream position don't move > to the end of already deserialized object. > So second array element is just random bytes from the middle of the stream. > BinaryObjectBuilderAdditionalSelfTest > {code:java} > /** */ > @Test > public void testArrayFieldSeveralRead() throws Exception { > try (Ignite ignite = startGrid(1)) { > TestClass1[] expArr = new TestClass1[] {new TestClass1(), new > TestClass1()}; > BinaryObject arrObj = ignite.binary().toBinary(new > TestClsWithArray(expArr)); > for (int i = 0; i < 10; i++) > Assert.assertArrayEquals(i + " iteration", expArr, > PlatformUtils.unwrapBinariesInArray(arrObj.field("arr"))); > arrObj = > ignite.binary().builder(TestClsWithArray.class.getName()).setField("arr", > expArr).build(); > for (int i = 0; i < 10; i++) > Assert.assertArrayEquals(i + " iteration", expArr, > PlatformUtils.unwrapBinariesInArray(arrObj.field("arr"))); > } > finally { > clearBinaryMeta(); > } > } > /** Test class with array. */ > public static class TestClsWithArray { > /** */ > private final Object[] arr; > /** */ > public TestClsWithArray(TestClass1[] arr) { > this.arr = arr; > } > } > {code} -- This message was sent by Atlassian Jira (v8.20.1#820001)