Adrian McCague created AVRO-2028:
------------------------------------

             Summary: Specific Data, newBuilder(existingInstance) fails for 
BigDecimal
                 Key: AVRO-2028
                 URL: https://issues.apache.org/jira/browse/AVRO-2028
             Project: Avro
          Issue Type: Bug
    Affects Versions: 1.8.2
            Reporter: Adrian McCague


Using 1.8.2-rc3

When attempting to use:
{{MyType.newBuilder(existingType)}}

With a field of type {{Union}}:
{code}
["null",{"type":"bytes","logicalType":"decimal","precision":20,"scale":8}]
{code}

I get the following exception:

{code}
org.apache.avro.UnresolvedUnionException: Not in union 
["null",{"type":"bytes","logicalType":"decimal","precision":20,"scale":8}]: 
12000.00000000

        at 
org.apache.avro.generic.GenericData.resolveUnion(GenericData.java:740)
        at 
org.apache.avro.generic.GenericData.deepCopyRaw(GenericData.java:1146)
        at org.apache.avro.generic.GenericData.deepCopy(GenericData.java:1062)
        at MyType$Builder.<init>
{code}

I suspected it may be related but also noticed in the generated Specific Data 
class the following:
{code}
private static final org.apache.avro.Conversion<?>[] conversions =
      new org.apache.avro.Conversion<?>[] {
      null,
      TIMESTAMP_CONVERSION,
      null,
      null, // Should be DECIMAL_CONVERSION
      null,
      null,
      null,
      null,
      null
  };
{code}
ie, the conversion was missing.
Adding this by hand however did not resolve the issue. I will add this as 
another issue.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to