You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avro.apache.org by "Roger (Jira)" <ji...@apache.org> on 2020/06/19 10:45:00 UTC

[jira] [Created] (AVRO-2867) Avro IDL: idl2schemata throws NullPointerException on record-valued defaults

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)