You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avro.apache.org by "Adrian McCague (JIRA)" <ji...@apache.org> on 2017/04/24 19:10:04 UTC

[jira] [Created] (AVRO-2028) Specific Data, newBuilder(existingInstance) fails for BigDecimal

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)