You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avro.apache.org by "Doug Cutting (JIRA)" <ji...@apache.org> on 2014/05/24 00:24:01 UTC
[jira] [Resolved] (AVRO-1510) Caused by:
org.apache.avro.UnresolvedUnionException: Not in union
[ 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)