diff --git a/clients/src/main/java/org/apache/kafka/clients/producer/RoundRobinPartitioner.java b/clients/src/main/java/org/apache/kafka/clients/producer/RoundRobinPartitioner.java index c736756ab4231..149dea4443fc8 100644 --- a/clients/src/main/java/org/apache/kafka/clients/producer/RoundRobinPartitioner.java +++ b/clients/src/main/java/org/apache/kafka/clients/producer/RoundRobinPartitioner.java @@ -64,7 +64,11 @@ public int partition(String topic, Object key, byte[] keyBytes, Object value, by } private int nextValue(String topic) { - AtomicInteger counter = topicCounterMap.computeIfAbsent(topic, k -> new AtomicInteger(0)); + AtomicInteger counter = topicCounterMap.get(topic); + if(counter == null) { + counter = new AtomicInteger(0); + AtomicInteger counter = topicCounterMap.putIfAbsent(topic, counter); + } return counter.getAndIncrement(); }