Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
2.1
-
None
-
None
Description
Simple test where BinaryObjectBuilder builder object is reused fails with exception
org.apache.ignite.binary.BinaryObjectException: Wrong value has been set [typeName=SimpleCls, fieldName=str, fieldType=String, assignedValueType=Object]
IgniteCache<Object, Object> cache = /* obtain a reference to withKeepBinary cache instance */; BinaryObjectBuilder bldr = grid(0).binary().builder("SimpleCls"); bldr.setField("str", "abc"); c.put(0, bldr.build()); bldr.setField("str", null); c.put(1, bldr.build()); bldr.setField("str", "def"); c.put(2, bldr.build()); //exception will be thrown by call bldr.build()
It can be fixed by simply recreating BinaryObjectBuilder instead of reusing the same instance.
However reusing builder object must be either explicitly prohibited or exception must be fixed.
Right now documentation on builder class says nothing about reusing this object.
Attachments
Issue Links
- links to