From c49ab6b4ae69e3c4ad0ea31acb99223f19897ce7 Mon Sep 17 00:00:00 2001 From: Now <156046839+Kguswo@users.noreply.github.com> Date: Sat, 20 Sep 2025 12:52:29 +0900 Subject: [PATCH] MINOR: Optimize map lookup efficiency with getOrDefault (#20229) Optimized `getRemainingRecords()` method by replacing inefficient `containsKey() + get()` pattern with `getOrDefault()` to reduce map lookups from 2 to 1 per partition. Reviewers: Chia-Ping Tsai --- .../java/kafka/examples/ExactlyOnceMessageProcessor.java | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/examples/src/main/java/kafka/examples/ExactlyOnceMessageProcessor.java b/examples/src/main/java/kafka/examples/ExactlyOnceMessageProcessor.java index 175385b8ea8..d4249526f3b 100644 --- a/examples/src/main/java/kafka/examples/ExactlyOnceMessageProcessor.java +++ b/examples/src/main/java/kafka/examples/ExactlyOnceMessageProcessor.java @@ -216,11 +216,7 @@ public class ExactlyOnceMessageProcessor extends Thread implements ConsumerRebal } return consumer.assignment().stream().mapToLong(partition -> { long currentPosition = consumer.position(partition); - if (fullEndOffsets.containsKey(partition)) { - return fullEndOffsets.get(partition) - currentPosition; - } else { - return 0; - } + return fullEndOffsets.getOrDefault(partition, currentPosition) - currentPosition; }).sum(); }