You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avro.apache.org by "Doug Cutting (JIRA)" <ji...@apache.org> on 2012/09/05 20:01:07 UTC

[jira] [Commented] (AVRO-1146) Can't use ReflectData to get schema when the type has a BigDecimal or BigInteger field

    [ https://issues.apache.org/jira/browse/AVRO-1146?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13448932#comment-13448932 ] 

Doug Cutting commented on AVRO-1146:
------------------------------------

I'd prefer we address this as follows:
 - Remove references to java.lang.Number, since Avro cannot correctly handle all subclasses.
 - Add a mechanism to declare that an arbitrary class is Stringable.
 - Use that mechanism to declare BigDecimal, BigInteger and other concrete Number subclasses.

I'll work on a patch that does this.
                
> Can't use ReflectData to get schema when the type has a BigDecimal or BigInteger field
> --------------------------------------------------------------------------------------
>
>                 Key: AVRO-1146
>                 URL: https://issues.apache.org/jira/browse/AVRO-1146
>             Project: Avro
>          Issue Type: Bug
>          Components: java
>    Affects Versions: 1.7.0
>            Reporter: Alexandre Normand
>              Labels: newbie
>         Attachments: AVRO-1146.patch, TestReflectDataWithBigDecimal.java
>
>
> I'm using avro Reflection API for a specific use case and I have a bug where if the object I'm trying to get the Schema for has a field of type BigDecimal. Because BigDecimal extends java.lang.Number, we try to create a primitive schema for it but fail doing so with the following error:
> *{{org.apache.avro.AvroRuntimeException: Not a Specific class: class java.math.BigDecimal}}*
> I'm attaching a unit test that shows the problem with a basic type that has a single BigDecimal field.
> This basically also applied to all subclasses of java.lang.Number that are not primitives.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira