Hongshun Wang created FLINK-35567: ------------------------------------- Summary: 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.2.0 Reporter: Hongshun Wang 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)