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)

Reply via email to