[ https://issues.apache.org/jira/browse/IGNITE-5839?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16143890#comment-16143890 ]
ASF GitHub Bot commented on IGNITE-5839: ---------------------------------------- GitHub user AMashenkov opened a pull request: https://github.com/apache/ignite/pull/2532 IGNITE-5839: Unclear exception from BinaryObjectBuilder::build call when builder is reused. Fix BinaryObjectBuilder reusage issue. You can merge this pull request into a Git repository by running: $ git pull https://github.com/gridgain/apache-ignite ignite-5839 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/ignite/pull/2532.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #2532 ---- commit 774028b0aba9dcb453ce487b9265603e84bb147f Author: Andrey V. Mashenkov <andrey.mashen...@gmail.com> Date: 2017-08-28T15:18:05Z Fix BinaryObject builder reuse issue. ---- > 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.2 > > Attachments: Fix_BinaryObject_builder_reuse_issue_.patch > > > 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)