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

Sean Busbey commented on AVRO-1588:
-----------------------------------

The second schema better matches the stated goals of ReflectData.AllowNull

{quote}
ReflectData implementation that permits null field values. The schema generated 
for each field is a union of its declared type and null.
{quote}

Do we need to check for when our annotated class doesn't use the nullable 
version of a primitive and throw an error at getSchema time? Or special case 
those fields to not be nullable?

> ReflectData.AllowNull incorrectly handles primitive types.
> ----------------------------------------------------------
>
>                 Key: AVRO-1588
>                 URL: https://issues.apache.org/jira/browse/AVRO-1588
>             Project: Avro
>          Issue Type: Bug
>          Components: java
>    Affects Versions: 1.7.7
>            Reporter: Joey Echeverria
>
> When doing the following:
> {code:java}
> private static class PoJo {
>   private long id;
>   private String name;
> }
> ReflectData.AllowNull.get().getSchema(PoJo.class);
> {code}
> I'd expect a schema like this:
> {code:javascript}
> {
>   "type" : "record",
>   "name" : "PoJo",
>   "namespace" : "MyObject$",
>   "fields" : [ {
>     "name" : "id",
>     "type" : "long",
>   }, {
>     "name" : "name",
>     "type" : [ "null", "string" ],
>     "default" : null
>   } ]
> }
> {code}
> But instead I get:
> {code:javascript}
> {
>   "type" : "record",
>   "name" : "PoJo",
>   "namespace" : "MyObject$",
>   "fields" : [ {
>     "name" : "id",
>     "type" : [ "null", "long" ],
>     "default" : null
>   }, {
>     "name" : "name",
>     "type" : [ "null", "string" ],
>     "default" : null
>   } ]
> }
> {code}
> This will later result in an NullPointerException when you try to deserialize 
> bytes where id was null when it tries to convert the Long to a long.



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

Reply via email to