Joey Echeverria created AVRO-1588:
-------------------------------------
Summary: ReflectData.AllowNull incorrectly handles primitive types.
Key: AVRO-1588
URL: https://issues.apache.org/jira/browse/AVRO-1588
Project: Avro
Issue Type: Bug
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)