[ 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)