Ryan Skraba created AVRO-2757:
---------------------------------

             Summary: ReflectData still generates namespaces with dollar signs
                 Key: AVRO-2757
                 URL: https://issues.apache.org/jira/browse/AVRO-2757
             Project: Apache Avro
          Issue Type: Bug
          Components: java
            Reporter: Ryan Skraba


ReflectData should always generate valid Avro schemas for Java classes.  
Currently, the name and namespace are taken from the Java class name, which can 
contain dollar signs.  AVRO-2143 fixed this for the most common cases for 
nested classes.

It's still possible to generate namespaces with a dollar sign for classes that 
are nested more than one level.  This can be observed in this unit test:

[https://github.com/apache/avro/blob/70260919426f89825ca148f5ee815f3b2cf4764d/lang/java/avro/src/test/java/org/apache/avro/reflect/TestReflect.java#L842]

which generates
{code:java}
{
  "type" : "record",
  "name" : "AnotherSampleRecord",
  "namespace" : "org.apache.avro.reflect.TestReflect$SampleRecord",
  "fields" : [ {
    "name" : "a",
    "type" : [ "null", "int" ],
    "default" : null
  }, {
    "name" : "s",
    "type" : [ "null", {
      "type" : "record",
      "name" : "SampleRecord",
      "namespace" : "org.apache.avro.reflect.TestReflect",
      "fields" : [ {
        "name" : "x",
        "type" : "int"
      }, {
        "name" : "y",
        "type" : "int"
      } ]
    } ],
    "default" : null
  } ]
}
{code}
 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to