[ 
https://issues.apache.org/jira/browse/FLINK-35567?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Hongshun Wang updated FLINK-35567:
----------------------------------
    Affects Version/s: cdc-3.1.1
                           (was: cdc-3.2.0)

> CDC BinaryWriter cast NullableSerializerWrapper error 
> ------------------------------------------------------
>
>                 Key: FLINK-35567
>                 URL: https://issues.apache.org/jira/browse/FLINK-35567
>             Project: Flink
>          Issue Type: Bug
>          Components: Flink CDC
>    Affects Versions: cdc-3.1.1
>            Reporter: Hongshun Wang
>            Priority: Major
>             Fix For: cdc-3.1.1
>
>
> Current, we will generate data type serializers by 
> org.apache.flink.cdc.runtime.typeutils.BinaryRecordDataGenerator#BinaryRecordDataGenerator(org.apache.flink.cdc.common.types.DataType[]),
>  which will put into a 
> NullableSerializerWrapper.
> {code:java}
> //代码占位符
> public BinaryRecordDataGenerator(DataType[] dataTypes) {
>     this(
>             dataTypes,
>             Arrays.stream(dataTypes)
>                     .map(InternalSerializers::create)
>                     .map(NullableSerializerWrapper::new)
>                     .toArray(TypeSerializer[]::new));
> } {code}
> However, when use in BinaryWriter#write, if type is ARRAY/MAP/ROW, will cast 
> NullableSerializerWrapper to 
> ArrayDataSerializer/TypeSerializer<MapData>/TypeSerializer<RecordData>.
> A exception will be thrown:
> {code:java}
> java.lang.ClassCastException: 
> org.apache.flink.cdc.runtime.serializer.NullableSerializerWrapper cannot be 
> cast to org.apache.flink.cdc.runtime.serializer.data.ArrayDataSerializer
>       at 
> org.apache.flink.cdc.runtime.serializer.data.writer.BinaryWriter.write(BinaryWriter.java:134)
>         at 
> org.apache.flink.cdc.runtime.typeutils.BinaryRecordDataGenerator.generate(BinaryRecordDataGenerator.java:89)
>  {code}



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

Reply via email to