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

cesuciso edited comment on AVRO-3179 at 3/6/23 5:44 PM:
--------------------------------------------------------

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, consider all BigDecimal values must 
be considered as java.Math.BigDecimal (null when the value is null, or not), 
and so, forget java.nio.ByteBuffer for "Decimal" Avro fields ?


was (Author: JIRAUSER299108):
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)

Reply via email to