[ https://issues.apache.org/jira/browse/FLINK-37469?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Munir Contractor updated FLINK-37469: ------------------------------------- Component/s: API / Type Serialization System > ClassCastException in org.apache.flink.table.data.GenericRowData > ---------------------------------------------------------------- > > Key: FLINK-37469 > URL: https://issues.apache.org/jira/browse/FLINK-37469 > Project: Flink > Issue Type: Bug > Components: API / Type Serialization System > Environment: Flink 1.19.2 > Reporter: Munir Contractor > Priority: Minor > > In my application, I am reading AVRO data from Kafka using KafkaSource. The > data is deserialized as AVRO `GenericRecord` and eventually sent to a sink > that writes it to Iceberg tables. During execution, I see the following stack > trace, once the sink tries to write the data. > > {code:java} > Caused by: java.lang.ClassCastException: class java.lang.Integer cannot be > cast to class java.lang.Long (java.lang.Integer and java.lang.Long are in > module java.base of loader 'bootstrap') > at org.apache.flink.table.data.GenericRowData.getLong(GenericRowData.java:154) > at > org.apache.flink.table.data.RowData.lambda$createFieldGetter$245ca7d1$7(RowData.java:249) > at > org.apache.flink.table.runtime.typeutils.RowDataSerializer.copyRowData(RowDataSerializer.java:170) > at > org.apache.flink.table.runtime.typeutils.RowDataSerializer.copy(RowDataSerializer.java:131) > at > org.apache.flink.table.runtime.typeutils.RowDataSerializer.copy(RowDataSerializer.java:48) > at > org.apache.flink.streaming.runtime.tasks.CopyingChainingOutput.pushToOperator(CopyingChainingOutput.java:74) > {code} > Looking through the code for the class, the method does {{return (long) > this.fields[pos]) }}where fields is an array of Object. Because the array has > type Object, the values cannot be directly cast as primitives, but should be > converted to Number, and converted with the appropriate method, i.e. {{return > ((Number) this.fields[pos]).longValue();}} Other methods in the class are > also susceptible to this bug. -- This message was sent by Atlassian Jira (v8.20.10#820010)