Ryan Skraba created AVRO-3374:
---------------------------------
Summary: [Java] Fully qualified type reference "ns.int" loses
namespace.
Key: AVRO-3374
URL: https://issues.apache.org/jira/browse/AVRO-3374
Project: Apache Avro
Issue Type: Bug
Components: java
Affects Versions: 1.11.0
Reporter: Ryan Skraba
While brainstorming for AVRO-3370, I came across this special case where a
type-reference could be considered ambiguous if the SDK is not careful when
simplifying inherited namespaces:
{code:json}
{
"type" : "record",
"name" : "ns.int",
"fields" : [
{"name" : "value", "type" : "int"},
{"name" : "next", "type" : [ "null", "ns.int" ]}
]
}
{code}
In Java, if this code is parsed, it works as expected (as a linked list).
If the schema is turned to a String using toString(), the namespace is dropped
off the last {*}{{ns.int}}{*}, turning it into the primitive. That string can
still be parsed into a Schema, but the "round-trip" modifies the schema in an
incompatible way.
That namespace shouldn't be dropped when producing the JSON string representing
the Schema in Java.
--
This message was sent by Atlassian Jira
(v8.20.1#820001)