You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avro.apache.org by "laki (JIRA)" <ji...@apache.org> on 2018/02/16 17:41:00 UTC

[jira] [Updated] (AVRO-2146) getting Expected start-union. Got VALUE_STRING

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

laki updated AVRO-2146:
-----------------------
    Environment: 
error message:

Exception in thread "main" org.apache.avro.AvroTypeException: Expected start-union. Got VALUE_STRING
 at org.apache.avro.io.JsonDecoder.error(JsonDecoder.java:698)
 at org.apache.avro.io.JsonDecoder.readIndex(JsonDecoder.java:441)
 at org.apache.avro.io.ResolvingDecoder.doAction(ResolvingDecoder.java:290)
 at org.apache.avro.io.parsing.Parser.advance(Parser.java:88)
 at org.apache.avro.io.ResolvingDecoder.readIndex(ResolvingDecoder.java:267)
 at org.apache.avro.generic.GenericDatumReader.readWithoutConversion(GenericDatumReader.java:179)
 at org.apache.avro.generic.GenericDatumReader.read(GenericDatumReader.java:153)
 at org.apache.avro.generic.GenericDatumReader.readField(GenericDatumReader.java:232)
 at org.apache.avro.generic.GenericDatumReader.readRecord(GenericDatumReader.java:222)
 at org.apache.avro.generic.GenericDatumReader.readWithoutConversion(GenericDatumReader.java:175)
 at org.apache.avro.generic.GenericDatumReader.read(GenericDatumReader.java:153)
 at org.apache.avro.generic.GenericDatumReader.readField(GenericDatumReader.java:232)
 at org.apache.avro.generic.GenericDatumReader.readRecord(GenericDatumReader.java:222)
 at org.apache.avro.generic.GenericDatumReader.readWithoutConversion(GenericDatumReader.java:175)
 at org.apache.avro.generic.GenericDatumReader.read(GenericDatumReader.java:153)
 at org.apache.avro.generic.GenericDatumReader.read(GenericDatumReader.java:145)
 at myJson2Avro.fromJasonToAvro(myJson2Avro.java:81)
 at myJson2Avro.main(myJson2Avro.java:48)

> getting Expected start-union. Got VALUE_STRING
> ----------------------------------------------
>
>                 Key: AVRO-2146
>                 URL: https://issues.apache.org/jira/browse/AVRO-2146
>             Project: Avro
>          Issue Type: Bug
>    Affects Versions: 1.8.2
>         Environment: error message:
> Exception in thread "main" org.apache.avro.AvroTypeException: Expected start-union. Got VALUE_STRING
>  at org.apache.avro.io.JsonDecoder.error(JsonDecoder.java:698)
>  at org.apache.avro.io.JsonDecoder.readIndex(JsonDecoder.java:441)
>  at org.apache.avro.io.ResolvingDecoder.doAction(ResolvingDecoder.java:290)
>  at org.apache.avro.io.parsing.Parser.advance(Parser.java:88)
>  at org.apache.avro.io.ResolvingDecoder.readIndex(ResolvingDecoder.java:267)
>  at org.apache.avro.generic.GenericDatumReader.readWithoutConversion(GenericDatumReader.java:179)
>  at org.apache.avro.generic.GenericDatumReader.read(GenericDatumReader.java:153)
>  at org.apache.avro.generic.GenericDatumReader.readField(GenericDatumReader.java:232)
>  at org.apache.avro.generic.GenericDatumReader.readRecord(GenericDatumReader.java:222)
>  at org.apache.avro.generic.GenericDatumReader.readWithoutConversion(GenericDatumReader.java:175)
>  at org.apache.avro.generic.GenericDatumReader.read(GenericDatumReader.java:153)
>  at org.apache.avro.generic.GenericDatumReader.readField(GenericDatumReader.java:232)
>  at org.apache.avro.generic.GenericDatumReader.readRecord(GenericDatumReader.java:222)
>  at org.apache.avro.generic.GenericDatumReader.readWithoutConversion(GenericDatumReader.java:175)
>  at org.apache.avro.generic.GenericDatumReader.read(GenericDatumReader.java:153)
>  at org.apache.avro.generic.GenericDatumReader.read(GenericDatumReader.java:145)
>  at myJson2Avro.fromJasonToAvro(myJson2Avro.java:81)
>  at myJson2Avro.main(myJson2Avro.java:48)
>            Reporter: laki
>            Priority: Major
>
> Here is the schema, no unions, but getting union error :
>  
> {
>  "type" : "record",
>  "name" : "edm_generic_publisher_avro_schema",
>  "namespace" : "edm.avro",
>  "doc" : "The generic avro schema used by publishers to publish events to the enterprise streaming service",
>  "fields" : [ 
>  
>  {"name" : "event", 
>  "type" : {
>  "type" : "record",
>  "name" : "event_meta_data",
>  "fields" : [
>  {"name" : "event_name", 
>  "type" : "string", 
>  "doc" : "The name of the event. In the CDC, this field is populated with the name of the data base table or segment."},
> {"name" : "operation_type", 
>  "type" : "string", 
>  "doc": "The operation or action that triggered the event. e.g., Insert, Update, Delete, etc."},
> {"name" : "transaction_identifier", 
>  "type" : "string", 
>  "default" : "NONE",
>  "doc" : "A unique identifier that identifies a unit or work or transaction. Useful in relating multiple events together."},
> {"name" : "event_publication_timestamp_millis", 
>  "type" : "string", 
>  "doc": "timestamp when the event was published"},
>  
>  {"name" : "event_publisher", 
>  "type" : "string", 
>  "doc" : "The system or application that published the event"},
>  
>  {"name" : "event_publisher_identity",
>  "type": "string",
>  "default" : "NONE",
>  "doc": "The identity (user) of the system or application that published the event"},
>  
>  {"name" : "event_timestamp_millis", 
>  "type" : "string",
>  "default" : "NONE",
>  "doc": "timestamp when the event occured"},
>  
>  {"name": "event_initiator",
>  "type": "string",
>  "default" : "NONE",
>  "doc" : "The system or application that initiated the event"},
>  
>  {"name": "event_initiator_identity",
>  "type" : "string",
>  "default" : "NONE",
>  "doc": "The system id or application id that initiated the event" }
>  
>  
>  ]},
>  "doc" : "The data about the published event"
>  },
>  { "name" : "contents",
>  "type" : {
>  "name": "data_field_groups",
>  "type": "array",
>  "items": {
>  "type": "record",
>  "name": "data_field_group",
>  "fields" : [
>  {"name": "data_group_name",
>  "type": "string"
>  },
>  {
>  "name": "data_fields",
>  "type": {
>  "type": "array",
>  "items": {
>  "name": "data_field",
>  "type": "record",
>  "fields":[
>  {"name" : "data_field_name",
>  "type" : "string",
>  "doc" : "The field name"}, 
>  
>  {"name": "data_field_type",
>  "type": "string",
>  "doc" : "The data type is one of the following values: string, boolean, int, long, float, double or bytes"},
>  
>  {"name" : "data_field_value",
>  "type" : ["string"],
>  "doc" : "The value"}
>  ]
>  }
>  
>  }
>  
>  }
>  ]
>  }
>  },
>  "doc" : "The datafields for the for the published event"
>  } 
>  ]
> }
> ;
>  
>  
> here is the code that is causing the issue-------------------------------
>  
> static byte[] fromJasonToAvro( InputStream json, Schema schemastr) throws Exception {
> FileOutputStream outStream;
> InputStream input = json; 
> DataInputStream din = new DataInputStream(input);
> Schema schema = schemastr;
> Decoder decoder = DecoderFactory.get().jsonDecoder(schema, din);
> DatumReader<Object> reader = new GenericDatumReader<Object>(schema);
> Object datum = reader.read(null, decoder);
> GenericDatumWriter<Object> w = new GenericDatumWriter<Object>(schema);
> ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
>  
> Encoder e = EncoderFactory.get().binaryEncoder(outputStream, null);
> w.write(datum, e);
> e.flush();
>  
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)