[
https://issues.apache.org/jira/browse/KAFKA-9686?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17056178#comment-17056178
]
Konstantine Karantasis commented on KAFKA-9686:
-----------------------------------------------
As a summary here, the PR that was merged for this issue, mainly addressed a
bug in a refactoring that was part of
[https://github.com/apache/kafka/pull/8220] and was included as additional
cleanup for https://issues.apache.org/jira/browse/KAFKA-9645 but was not
strictly required by https://issues.apache.org/jira/browse/KAFKA-9645
The fix ended up being a simplification of {{MockConsumer#updateEndOffsets}}
and the member variable {{MockConsumer#endOffsets}}. The method
{{updateEndOffsets}} now always overwrites any existing end offsets with the
ones supplied to this method.
The fix for this Jira ticket here is also a fix for
https://issues.apache.org/jira/browse/KAFKA-9682 that corresponds to the test
that broke from the initial refactoring.
> MockConsumer#endOffsets should be idempotent
> --------------------------------------------
>
> Key: KAFKA-9686
> URL: https://issues.apache.org/jira/browse/KAFKA-9686
> Project: Kafka
> Issue Type: Bug
> Reporter: Chia-Ping Tsai
> Assignee: Chia-Ping Tsai
> Priority: Major
>
> {code:java}
> private Long getEndOffset(List<Long> offsets) {
> if (offsets == null || offsets.isEmpty()) {
> return null;
> }
> return offsets.size() > 1 ? offsets.remove(0) : offsets.get(0);
> }
> {code}
> The above code has two issues.
> 1. It does not return the latest offset since the latest offset is at the end
> of offsets
> 1. It removes the element from offsets so MockConsumer#endOffsets gets
> non-idempotent
--
This message was sent by Atlassian Jira
(v8.3.4#803005)