Details
-
Bug
-
Status: Patch Available
-
Minor
-
Resolution: Unresolved
-
1.9.2
-
- Apache Avro Version [1.9.2]
- Java Version [11]
Description
Steps to reproduce :
- Using the maven/gradle plugin generate code with the following avsc:
{ "type": "record", "name": "Messages", "namespace": "com.somedomain", "fields": [ { "name": "start", "type": { "type": "long", "logicalType": "timestamp-millis" } }, { "name": "optional_date", "type": [ "null", { "type": "long", "logicalType": "timestamp-millis" } ], "default": null } ] }
Actual behavior
In the generated code, the return types of the getter methods for both fields are correct, however the conversions array only has an element for the field which isn't a union.
private static final org.apache.avro.Conversion<?>[] conversions = new org.apache.avro.Conversion<?>[] { new org.apache.avro.data.TimeConversions.TimestampMillisConversion(), null, null };
Expected output:
Based on the above avsc the following is expected.
private static final org.apache.avro.Conversion[] conversions = new org.apache.avro.Conversion[] { new org.apache.avro.data.TimeConversions.TimestampMillisConversion(), new org.apache.avro.data.TimeConversions.TimestampMillisConversion(), null };