Description
Very similar to AVRO-1500.
When in thrift schema (e.g. Test) with optional byte field:
16: optional byte byteOptionalField
This field is initialized like:
test.setByteOptionalField((byte)4);
Then during conversion of this thrift-object to avro instead of converting it to int 4, the exception is thrown.
org.apache.avro.AvroRuntimeException: Unknown datum type java.lang.Byte: 4 at org.apache.avro.generic.GenericData.getSchemaName(GenericData.java:637) at org.apache.avro.thrift.ThriftData.getSchemaName(ThriftData.java:120) at org.apache.avro.generic.GenericData.resolveUnion(GenericData.java:602) 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)
Proposed solution is also similar to AVRO-1500 - to overload getSchemaName in org.apache.avro.thrift.ThriftData