Pádraig de Buitléar created AVRO-2872:
-----------------------------------------

             Summary: 'conversions' array is not populated for Avro Union 
Logicaltype fields 
                 Key: AVRO-2872
                 URL: https://issues.apache.org/jira/browse/AVRO-2872
             Project: Apache Avro
          Issue Type: Bug
          Components: logical types
    Affects Versions: 1.9.2
         Environment: * Apache Avro Version [1.9.2]
* Java Version [11]
            Reporter: Pádraig de Buitléar


Steps to reproduce :
 # Using the maven/gradle plugin generate code with the following avsc:
   

{code:java}
{
  "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
    }
  ]
}{code}
 

*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.
  
{code:java}
  private static final org.apache.avro.Conversion<?>[] conversions =
      new org.apache.avro.Conversion<?>[] {
      new org.apache.avro.data.TimeConversions.TimestampMillisConversion(),
      null,
      null
  };
{code}
 

*Expected output:*
 Based on the above avsc the following is expected.
  
{code:java}
  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
  };
{code}
 

 

 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to