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)