[infinispan-issues] [JBoss JIRA] (IPROTO-63) writeObject throws IllegalArgumentException with oneof label

Nistor Adrian (Jira) issues at jboss.org
Mon Sep 30 10:25:01 EDT 2019


     [ https://issues.jboss.org/browse/IPROTO-63?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Nistor Adrian updated IPROTO-63:
--------------------------------
    Fix Version/s: 4.3.0.Alpha14
                       (was: 4.3.0.Alpha13)


> writeObject throws IllegalArgumentException with oneof label
> ------------------------------------------------------------
>
>                 Key: IPROTO-63
>                 URL: https://issues.jboss.org/browse/IPROTO-63
>             Project: Infinispan ProtoStream
>          Issue Type: Bug
>            Reporter: Ryan Emerson
>            Assignee: Nistor Adrian
>            Priority: Major
>             Fix For: 4.3.0.Alpha14, 4.3.0.Final
>
>
> The below schema results in the following exception:
> Schema:
> {code:java}
> message EntryVersion {
>     oneof version {
>         NumericVersion numeric = 1;
>         ClusteredVersion clustered = 2;
>     }
> //    optional NumericVersion numeric = 1;
> //    optional ClusteredVersion clustered = 2;
> }
> message NumericVersion {
>     required int64 version = 1;
> }
> message ClusteredVersion {
>     required int64 version = 1;
>     required int32 topology = 2;
> }
> {code}
> Exception:
> {code:java}
> java.lang.IllegalArgumentException: Declared field type is not a message or an enum : numeric
> {code}
> It seems this is caused because the type for the field "numeric" is null in the associated FieldDescriptor object that is retrieved in the [writeObject impl|https://github.com/infinispan/protostream/blob/master/core/src/main/java/org/infinispan/protostream/impl/ProtoStreamWriterImpl.java#L452-L470]. 
> If the oneof label is replaced with the commented optional fields, the marshallers work as expected.



--
This message was sent by Atlassian Jira
(v7.13.8#713008)


More information about the infinispan-issues mailing list