[ 
https://issues.apache.org/jira/browse/AVRO-1510?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Doug Cutting resolved AVRO-1510.
--------------------------------

    Resolution: Invalid

> 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