Skip to content

DefaultAfterRollbackProcessor for batch-listeners consuming ConsumerRecords doesn't seek consumer #4439

@s-b-u

Description

@s-b-u

Between 3.3.15 and 4.0.5

Due to changes done by #3762 the DefaultAfterRollbackProcessor stops working for batch-listeners consuming ConsumerRecords (ListenerConsumer.wantsFullRecords=true). ListenerConsumer.batchRollback receives an empty recordList instead null like before the change.


This causes the call to SeekUtils.doSeeksToBegin within DefaultAfterRollbackProcessor#processBatch to do nothing, since the recordList is only populated when it's null.

To Reproduce

Compare listener consuming List<ConsumerRecord> with one consuming ConsumerRecords.

Expected behavior

Consistent behavior for listeners consuming List<ConsumerRecord> or ConsumerRecords

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions