ananthram created AVRO-1510:
-------------------------------

             Summary: Caused by: org.apache.avro.UnresolvedUnionException: Not 
in union
                 Key: AVRO-1510
                 URL: https://issues.apache.org/jira/browse/AVRO-1510
             Project: Avro
          Issue Type: Bug
    Affects Versions: 1.7.6
            Reporter: ananthram


Hi,

I have a schema with a field which is an optional Fixed field, but when i tried 
to write data to it , got the below error.
Caused by: org.apache.avro.UnresolvedUnionException: Not in union 
["null",{"type":"fixed","name":"x","size":14}]: [1, 2, 3]
        at 
org.apache.avro.generic.GenericData.resolveUnion(GenericData.java:600)
        at 
org.apache.avro.generic.GenericDatumWriter.resolveUnion(GenericDatumWriter.java:151)
        at 
org.apache.avro.generic.GenericDatumWriter.write(GenericDatumWriter.java:71)
        at 
org.apache.avro.generic.GenericDatumWriter.writeField(GenericDatumWriter.java:114)
        at 
org.apache.avro.generic.GenericDatumWriter.writeRecord(GenericDatumWriter.java:104)



Schema is:
{
  "name": "ComplianceEnvelope",
  "type": "record",
  "fields": [
    {
      "name": "message",
      "type": {
        "name": "ComplianceMessage",
        "type": "record",
        "fields": [
          {
            "name": "key",
            "type": ["null",{"type": "fixed","name": "x","size": 14}],
            "default":null
          },
          {
            "name": "source_name",
            "type": ["string"]
          }
         
        ]
      }
    }
  ]
}

Code:

import java.io.File;
import java.io.IOException;

import org.apache.avro.Schema;
import org.apache.avro.Schema.Parser;
import org.apache.avro.file.DataFileWriter;
import org.apache.avro.generic.GenericData;
import org.apache.avro.generic.GenericDatumWriter;
import org.apache.avro.generic.GenericFixed;
import org.apache.avro.generic.GenericRecord;
import org.apache.avro.io.DatumWriter;



public class AvroWriter {

        /**
         * @param args
         * @throws IOException 
         */
        public static void main(String[] args) throws IOException {
                // TODO Auto-generated method stub
                Schema s = (new Parser()).parse(new 
File("C:\\Workspace\\SignalWorkspace\\test\\src\\schema.avsc"));
                File out = new File("out.avro");
                DatumWriter w = new GenericDatumWriter(s);
                DataFileWriter d = new DataFileWriter(w);
                d.create(s,out );
                
                GenericRecord r = new GenericData.Record(s);
                GenericRecord c = new 
GenericData.Record(s.getField("message").schema());

                c.put("source_name", "twitter");
                
                GenericFixed k =new 
GenericData.Fixed(s.getField("message").schema().getField("key").schema(),new 
byte[]{1,2,3});
                
                c.put("key", k);
                r.put("message", c);
                d.append(r);
                
                d.close();
                

        }

}




--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to