Sergey Chugunov created IGNITE-5839:
---------------------------------------
Summary: Unclear exception from BinaryObjectBuilder::build call
when builder is reused
Key: IGNITE-5839
URL: https://issues.apache.org/jira/browse/IGNITE-5839
Project: Ignite
Issue Type: Bug
Affects Versions: 2.1
Reporter: Sergey Chugunov
Fix For: 2.2
Simple test where {{BinaryObjectBuilder}} builder object is reused fails with
exception {noformat}org.apache.ignite.binary.BinaryObjectException: Wrong value
has been set [typeName=SimpleCls, fieldName=str, fieldType=String,
assignedValueType=Object]{noformat}
{noformat}
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()
{noformat}
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.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)