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)

Reply via email to