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)

Reply via email to