[
https://issues.apache.org/jira/browse/IGNITE-5839?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16207258#comment-16207258
]
ASF GitHub Bot commented on IGNITE-5839:
----------------------------------------
Github user AMashenkov closed the pull request at:
https://github.com/apache/ignite/pull/2532
> 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
> Assignee: Andrew Mashenkov
> Fix For: 2.3
>
>
> 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)