You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@avro.apache.org by "cesuciso (Jira)" <ji...@apache.org> on 2023/03/06 17:44:00 UTC

[jira] [Commented] (AVRO-3179) ClassCastException: java.math.BigDecimal cannot be cast to java.nio.ByteBuffer

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

cesuciso commented on AVRO-3179:
--------------------------------

In my issue, the exception is only thrown when my Avro "Decimal" field is nullable (as it is the case in the table.avsc example). When the field is not nullable, the exception is not thrown.

I currently don't use the -BigDecimal compile option, and my code currently expects Decimal Avro value to be considered as java.nio.ByteBuffer (null when the value is null or not)

Do we need to add the "-BigDecimal" option and consider all BigDecimal values must be considered as java.Math.BigDecimal (null when the value is null, or not) ?

> ClassCastException: java.math.BigDecimal cannot be cast to java.nio.ByteBuffer
> ------------------------------------------------------------------------------
>
>                 Key: AVRO-3179
>                 URL: https://issues.apache.org/jira/browse/AVRO-3179
>             Project: Apache Avro
>          Issue Type: Bug
>          Components: java
>    Affects Versions: 1.10.2
>            Reporter: MarcelKobain
>            Priority: Blocker
>         Attachments: table.avsc
>
>
> Hello,
> I think we have the same problem as AVRO-2212.
> I have classCassException with a bigDecimal.
>  
> Context : 
> I am doing an ETL with postgres >> KafkaConnect >> KafkaStream
> I get schemas with mvn schema-registry:download
>  I generate pojo with : mvn clean avro:schema
> Then I launch my app to stream a table source to a table target
> see schema here : [^table.avsc]
>  
> I have fixed passing on the 1.10.1 version and it works. But When i take 1.10.2 I have the bug : 
> Caused by: java.lang.ClassCastException: java.math.BigDecimal cannot be cast to java.nio.ByteBufferCaused by: java.lang.ClassCastException: java.math.BigDecimal cannot be cast to java.nio.ByteBuffer at postgres.table.Value.put(Value.java:240) at org.apache.avro.generic.GenericData.setField(GenericData.java:818) at org.apache.avro.specific.SpecificDatumReader.readField(SpecificDatumReader.java:139) at org.apache.avro.generic.GenericDatumReader.readRecord(GenericDatumReader.java:247) at org.apache.avro.specific.SpecificDatumReader.readRecord(SpecificDatumReader.java:123) at org.apache.avro.generic.GenericDatumReader.readWithoutConversion(GenericDatumReader.java:179)
>  
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)