Martin Sillence created FLINK-32614:
---------------------------------------
Summary: avro mappings aren't always named as pojos
Key: FLINK-32614
URL: https://issues.apache.org/jira/browse/FLINK-32614
Project: Flink
Issue Type: Bug
Reporter: Martin Sillence
Debezium with the flatten SMT:
"transforms.unwrap.type": "io.debezium.transforms.ExtractNewRecordState",
{{Will create avro with the field}}
{{ {}}
{{ "default": null,}}
{{ "name": "__deleted",}}
{{ "type": [}}
{{ "null",}}
{{ "string"}}
{{ ]}}
{{ }}}
This has the expected field:
private java.lang.String __deleted;
{{and constructor but the getter and setter are named:}}
{{ public java.lang.String getDeleted$1() {}}
{{ return __deleted;}}
{{ }}}
{{ }}{{ public void setDeleted$1(java.lang.String value) {}}
{{ this.__deleted = value;}}
{{ }}}
{{Trying to use this generate class throws:}}
Exception in thread "main" java.lang.IllegalStateException: Expecting type to
be a PojoTypeInfo
at
org.apache.flink.formats.avro.typeutils.AvroTypeInfo.generateFieldsFromAvroSchema(AvroTypeInfo.java:72)
at
org.apache.flink.formats.avro.typeutils.AvroTypeInfo.<init>(AvroTypeInfo.java:55)
at
org.apache.flink.formats.avro.utils.AvroKryoSerializerUtils.createAvroTypeInfo(AvroKryoSerializerUtils.java:87)
at
org.apache.flink.api.java.typeutils.TypeExtractor.privateGetForClass(TypeExtractor.java:1939)
at
org.apache.flink.api.java.typeutils.TypeExtractor.privateGetForClass(TypeExtractor.java:1840)
at
org.apache.flink.api.java.typeutils.TypeExtractor.createTypeInfoWithTypeHierarchy(TypeExtractor.java:982)
at
org.apache.flink.api.java.typeutils.TypeExtractor.privateCreateTypeInfo(TypeExtractor.java:802)
at
org.apache.flink.api.java.typeutils.TypeExtractor.createTypeInfo(TypeExtractor.java:749)
at
org.apache.flink.api.java.typeutils.TypeExtractor.createTypeInfo(TypeExtractor.java:745)
at
org.apache.flink.api.common.typeinfo.TypeInformation.of(TypeInformation.java:210)
at com.fnz.flink.AvroDeserialization.<init>(AvroDeserialization.java:22)
at com.fnz.flink.DataStreamJob.main(DataStreamJob.java:90)
--
This message was sent by Atlassian Jira
(v8.20.10#820010)