ignite-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dmitry Karachentsev (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (IGNITE-4026) BinaryObjectBuilder.build() can fail if one of the fields is Externalizable
Date Mon, 28 Nov 2016 07:49:58 GMT

    [ https://issues.apache.org/jira/browse/IGNITE-4026?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15701231#comment-15701231
] 

Dmitry Karachentsev commented on IGNITE-4026:
---------------------------------------------

[PR#1281|https://github.com/apache/ignite/pull/1281]

> BinaryObjectBuilder.build() can fail if one of the fields is Externalizable
> ---------------------------------------------------------------------------
>
>                 Key: IGNITE-4026
>                 URL: https://issues.apache.org/jira/browse/IGNITE-4026
>             Project: Ignite
>          Issue Type: Bug
>          Components: binary
>    Affects Versions: 1.7
>            Reporter: Valentin Kulichenko
>            Assignee: Dmitry Karachentsev
>            Priority: Critical
>             Fix For: 1.8
>
>         Attachments: BuilderTest.java, BuilderTest2.java
>
>
> Test reproducing the issue is attached.
> Scenario is the following:
> # Create a binary object with an {{Externalizable}} field.
> # Create a builder from this object using {{toBuilder()}} method.
> # Do some modifications.
> # Call {{build()}}, get exception below.
> {noformat}
> Exception in thread "main" class org.apache.ignite.binary.BinaryObjectException: Invalid
flag value: -2
> 	at org.apache.ignite.internal.binary.builder.BinaryBuilderReader.parseValue(BinaryBuilderReader.java:761)
> 	at org.apache.ignite.internal.binary.builder.BinaryObjectBuilderImpl.serializeTo(BinaryObjectBuilderImpl.java:281)
> 	at org.apache.ignite.internal.binary.builder.BinaryObjectBuilderImpl.build(BinaryObjectBuilderImpl.java:183)
> 	at BuilderTest.main(BuilderTest.java:16)
> {noformat}
> Similar issue exists with enums. An attempt to set enum field to builder with a value
which was read from a binary object fails with this exception:
> {noformat}
> Exception in thread "main" class org.apache.ignite.binary.BinaryObjectException: Wrong
value has been set [typeName=MyType, fieldName=enum, fieldType=Enum, assignedValueType=Object]
> 	at org.apache.ignite.internal.binary.builder.BinaryObjectBuilderImpl.checkMetadata(BinaryObjectBuilderImpl.java:401)
> 	at org.apache.ignite.internal.binary.builder.BinaryObjectBuilderImpl.serializeTo(BinaryObjectBuilderImpl.java:316)
> 	at org.apache.ignite.internal.binary.builder.BinaryObjectBuilderImpl.build(BinaryObjectBuilderImpl.java:183)
> 	at BuilderTest2.main(BuilderTest2.java:15)
> {noformat}
> The letter is reproduced in {{BinaryTest2.java}} (attached).



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message