Roger created AVRO-2867:
---------------------------
Summary: Avro IDL: idl2schemata throws NullPointerException on
record-valued defaults
Key: AVRO-2867
URL: https://issues.apache.org/jira/browse/AVRO-2867
Project: Apache Avro
Issue Type: Bug
Reporter: Roger
I ran the idl2schemata tool (using avro-tools release-1.10.0-rc1) on this avdl
file:
{code:none}
protocol p {
record R {
S S = {"x": 1234};
}
record S {
int x;
}
}
{code}
I get the following exception:
{code:none}
Exception in thread "main" java.lang.NullPointerException
at
org.apache.avro.util.internal.JacksonUtils.toObject(JacksonUtils.java:164)
at org.apache.avro.Schema$Field.defaultVal(Schema.java:632)
at
org.apache.avro.compiler.idl.ResolvingVisitor.afterVisitNonTerminal(ResolvingVisitor.java:143)
at
org.apache.avro.compiler.schema.Schemas.lambda$visitNonTerminal$1(Schemas.java:189)
at org.apache.avro.compiler.schema.Schemas.visit(Schemas.java:117)
at
org.apache.avro.compiler.idl.SchemaResolver.resolve(SchemaResolver.java:99)
at org.apache.avro.compiler.idl.Idl.CompilationUnit(Idl.java:135)
at org.apache.avro.tool.IdlToSchemataTool.run(IdlToSchemataTool.java:49)
at org.apache.avro.tool.Main.run(Main.java:67)
at org.apache.avro.tool.Main.main(Main.java:56)
{code}
I would expect the following output instead:
{code:json}
{
"type" : "record",
"name" : "R",
"fields" : [ {
"name" : "S",
"default": {"x": 1234},
"type" : {
"type" : "record",
"name" : "S",
"fields" : [ {
"name" : "x",
"type" : "int"
} ]
}
} ]
}
{code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)