laki created AVRO-2146:
--------------------------
Summary: 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
Reporter: laki
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)