You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avro.apache.org by "ASF subversion and git services (JIRA)" <ji...@apache.org> on 2018/12/03 20:14:00 UTC

[jira] [Commented] (AVRO-1849) C++ printJson fails on record with no fields

    [ https://issues.apache.org/jira/browse/AVRO-1849?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16707731#comment-16707731 ] 

ASF subversion and git services commented on AVRO-1849:
-------------------------------------------------------

Commit b5bec5ca18901507f6fc01d635f10465fd3edcdf in avro's branch refs/heads/master from Simon24601
[ https://gitbox.apache.org/repos/asf?p=avro.git;h=b5bec5c ]

Avro1363  C# union schema can now contain multiple entries with the same name and different namespace (#131)

* AVRO-1849 Fix the issue where converting the schema of a record with no fields produced an invalid JSON

* Fix style issues in the code.

* Fix the build scripts; build.sh requires the :z addition to work on SELinux (see Jira 1925). lang/c++/build.sh refers to the lang/c++/build directory which is empty. These are now fixed.

* Update to use BOOST_TEST_CHECKPOINT

* AVRO-1926 Revert changes to the lang/c++/build.sh script and add the SchemaTests to the list of tests. Also revert SELinux changes to build.sh as these should be committed separately

* AVRO-1363 Fix the parsing of a union schema with duplicate names but different namespaces. In Java, this works, but not in C#

* Remove c++ changes from the AVRO1363 branch


> C++ printJson fails on record with no fields
> --------------------------------------------
>
>                 Key: AVRO-1849
>                 URL: https://issues.apache.org/jira/browse/AVRO-1849
>             Project: Apache Avro
>          Issue Type: Bug
>          Components: c++
>    Affects Versions: 1.7.7, 1.8.0
>         Environment: Not relevant
>            Reporter: Simon Woodford
>            Assignee: Simon Woodford
>            Priority: Minor
>             Fix For: 1.9.0
>
>
> 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
(v7.6.3#76005)