You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Maksim Kozlov (JIRA)" <ji...@apache.org> on 2017/03/10 11:00:06 UTC

[jira] [Commented] (IGNITE-2422) Unable to deserialize BinaryObjectBuilder

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

Maksim Kozlov commented on IGNITE-2422:
---------------------------------------

[~vozerov] I also think that this is wrong. But I did not find a more suitable method without intermediate conversion. Or do you want to do it at a lower level?
This test shows proper deserialization.
{code:java}
        BinaryObjectBuilder root = ignite(0).binary().builder("test");

        BinaryObjectBuilder[] builders = new BinaryObjectBuilder[] {
            ignite(0).binary().builder("test" + "_d").setField("x", 10),
            ignite(0).binary().builder("test" + "_d").setField("x", 20)
        };

        root.setField("e", builders);

        BinaryObject binaryObject = root.build();

        Object[] buildersRev = binaryObject.field("e");

        // check deserialize 
        for (Object e : buildersRev) {
            assertTrue(e instanceof BinaryObject);
            assertTrue(((BinaryObject)e).toBuilder() instanceof BinaryObjectBuilder);
        }
{code}

> Unable to deserialize BinaryObjectBuilder
> -----------------------------------------
>
>                 Key: IGNITE-2422
>                 URL: https://issues.apache.org/jira/browse/IGNITE-2422
>             Project: Ignite
>          Issue Type: Bug
>          Components: binary
>    Affects Versions: 1.5.0.final
>            Reporter: Denis Magda
>            Assignee: Maksim Kozlov
>              Labels: important
>             Fix For: 2.0
>
>         Attachments: ExampleNodeStartup.java
>
>
> Presently it's possible to serialize {{BinaryObjectBuilder}} but it will lead to the errors at deserialization stage.
> After a brief investigation I see that this happens because neither {{org.apache.ignite.binary.BinaryObjectBuilder}} nor {{org.apache.ignite.internal.binary.builder.BinaryObjectBuilderImpl}} presents in {{META-INF/classnames.properties}} file.
> If you try to update {{ignite/modules/core/src/main/resources/META-INF/classnames.properties}} by building the project from scratch and copying-pasting generated content from built {{classnames.properties}}, then you will still see that there are still no entries for  {{org.apache.ignite.binary.BinaryObjectBuilder}} nor {org.apache.ignite.internal.binary.builder.BinaryObjectBuilderImpl}}.
> Looks like that {{ClassesGenerator}} misses these and other possible classes by some reason.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)