Simon Woodford created AVRO-1849:
------------------------------------

             Summary: C++ printJson fails on record with no fields
                 Key: AVRO-1849
                 URL: https://issues.apache.org/jira/browse/AVRO-1849
             Project: Avro
          Issue Type: Bug
          Components: c++
    Affects Versions: 1.8.0, 1.7.7
         Environment: Not relevant
            Reporter: Simon Woodford
            Priority: Minor
             Fix For: 1.8.1


The function NodeRecord::printJson in lang/c++/impl/NodeImpl.cc does not 
correctly handle a record with no fields. It injects an extra closing curly 
brace, and the result is invalid JSON. 
Starting with a schema
{
  "type": "record", 
  "name": "Example",
  "fields" : [
  ]
}
and parsing it to create a ValidSchema, then calling toJson on the ValidSchema 
generates
{
  "type": "record", 
  "name": "Example",
  "fields" : [
    }
  ]
}

A record with no fields is unusual but we have encountered use cases for it, 
avro does not invalidate a record with no fields, and I've confirmed that Java, 
C and C# handle this case correctly. (I have not checked the other supported 
languages.)







--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to