Ryon Day created AVRO-1810: ------------------------------ Summary: GenericDatumWriter broken with Enum Key: AVRO-1810 URL: https://issues.apache.org/jira/browse/AVRO-1810 Project: Avro Issue Type: Bug Components: java Affects Versions: 1.8.0 Reporter: Ryon Day Priority: Blocker
{panel:title=Description|titleBGColor=#3FA|bgColor=#DDD} Using the GenericDatumWriter with either Generic OR SpecificRecord will break if an Enum is present. {panel} {panel:title=Steps To Reproduce|titleBGColor=#8DB|bgColor=#DDD} I have been tracking Avro decoding oddities for a while. The tests for this issue can be found [here|https://github.com/ryonday/avroDecodingHelp/blob/master/src/test/java/com/ryonday/test/Avro180EnumFail.java] {panel} {panel:title=Notes|titleBGColor=#3AF|bgColor=#DDD} Due to the debacle that is the Avro "UTF8" object, we have been avoiding it by using the following scheme: * Write incoming records to a byte array using the GenericDatumWriter * Read back the byte array to our compiled Java domain objects using a SpecificDatumWriter This worked great with Avro 1.7.7, and this is a binary-incompatable breaking change with 1.8.0. This would appear to be caused by an addition in the {{GenericDatumWriter:163-164}}: {code} if (!data.isEnum(datum)) throw new AvroTypeException("Not an enum: "+datum); {code} {panel} -- This message was sent by Atlassian JIRA (v6.3.4#6332)