You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avro.apache.org by "Philip Rizk (JIRA)" <ji...@apache.org> on 2017/05/10 15:49:04 UTC
[jira] [Created] (AVRO-2033) GenericUnions constructor defaults to
a broken state
Philip Rizk created AVRO-2033:
---------------------------------
Summary: GenericUnions constructor defaults to a broken state
Key: AVRO-2033
URL: https://issues.apache.org/jira/browse/AVRO-2033
Project: Avro
Issue Type: Bug
Components: c++
Affects Versions: 1.7.7
Reporter: Philip Rizk
Priority: Minor
Creating a GenericUnion with a NodePtr results in an object that causes errors when written. Specifically the index for the union type will be invalid. This will only be caught when reading the serialized record.
The issue is the consturctor:
{code}
GenericUnion(const NodePtr& schema) :
GenericContainer(AVRO_UNION, schema), curBranch_(schema->leaves()) {
{code}
Setting curBranch_ to schema->leaves() will result in setting the value to an invalid index (one more than available. I believe the constructor in question should be changed to:
{code}
GenericContainer(AVRO_UNION, schema), curBranch_(0) {
{code}
This should ensure the union is set to the default branch.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)