[ https://issues.apache.org/jira/browse/FLINK-20480?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17244929#comment-17244929 ]
Yun Tang commented on FLINK-20480: ---------------------------------- I think setting {{CheckpointedFunction}} interfaces as final in {{FlinkKafkaConsumerBase}} is to ensure the snapshot & restore logic is not open for users within Kafka connector. Maybe kafka connector guys could help answer more. You could implement a {{DataStreamSource}} wrapping {{FlinkKafkaConsumerBase}} which extends {{AbstractUdfStreamOperator}} and you could add some logic in {{AbstractUdfStreamOperator#snapshotState}} which is still open for users. > Methods from CheckpointedFunction interface in FlinkKafkaConsumerBase are set > to final > -------------------------------------------------------------------------------------- > > Key: FLINK-20480 > URL: https://issues.apache.org/jira/browse/FLINK-20480 > Project: Flink > Issue Type: Wish > Components: Connectors / Kafka > Environment: Flink 1.11 > Reporter: lidesheng > Priority: Major > > I created a subclass from FlinkKafkaConsumerBase and wanna add some logic in > checkpoint snapshot. I failed to do it because methods from > CheckpointedFunction interface in FlinkKafkaConsumerBase are set to final. > understand that these methods are set to final because offsets are required > to hold and commit, so they do not want to be overridden by subclasses. Can > we provide an additional abstract method to provide subclasses for their own > state related operations? Call it in then end of final method default logic > is emtpy. -- This message was sent by Atlassian Jira (v8.3.4#803005)