Details
Description
Steps to reproduce:
1. Create object with two objects collection fields, e.g. List<Object>
2. Assign the reference of the one field to the second.
3. Serialize object to BinaryObject
4. Create BinaryObjectBuiler from the object.
5. Add/change any field except collections.
6. Try to build new BinaryObject form the builer
Exception is thrown:
class org.apache.ignite.binary.BinaryObjectException: Unsupported protocol version: 2
at org.apache.ignite.internal.binary.BinaryUtils.checkProtocolVersion(BinaryUtils.java:795)
at org.apache.ignite.internal.binary.builder.BinaryObjectBuilderImpl.<init>(BinaryObjectBuilderImpl.java:139)
at org.apache.ignite.internal.binary.builder.BinaryBuilderReader.parseValue(BinaryBuilderReader.java:522)
at org.apache.ignite.internal.binary.builder.BinaryObjectBuilderImpl.serializeTo(BinaryObjectBuilderImpl.java:286)
at org.apache.ignite.internal.binary.builder.BinaryBuilderSerializer.writeValue(BinaryBuilderSerializer.java:100)
at org.apache.ignite.internal.binary.builder.BinaryBuilderSerializer.writeValue(BinaryBuilderSerializer.java:53)
at org.apache.ignite.internal.binary.builder.BinaryObjectBuilderImpl.serializeTo(BinaryObjectBuilderImpl.java:293)
at org.apache.ignite.internal.binary.builder.BinaryBuilderSerializer.writeValue(BinaryBuilderSerializer.java:100)
at org.apache.ignite.internal.binary.builder.BinaryBuilderSerializer.writeValue(BinaryBuilderSerializer.java:53)
at org.apache.ignite.internal.binary.builder.BinaryObjectBuilderImpl.serializeTo(BinaryObjectBuilderImpl.java:293)
at org.apache.ignite.internal.binary.builder.BinaryObjectBuilderImpl.build(BinaryObjectBuilderImpl.java:188)
Root cause:
BinaryBuilderReader#parseValue doesn’t support handle to collection. Only handles to object are expected.
Attachments
Issue Links
- links to