diff --git a/spring-kafka/src/main/java/org/springframework/kafka/listener/ConcurrentMessageListenerContainer.java b/spring-kafka/src/main/java/org/springframework/kafka/listener/ConcurrentMessageListenerContainer.java index 145fcfbe19..16458e8e1c 100644 --- a/spring-kafka/src/main/java/org/springframework/kafka/listener/ConcurrentMessageListenerContainer.java +++ b/spring-kafka/src/main/java/org/springframework/kafka/listener/ConcurrentMessageListenerContainer.java @@ -320,26 +320,24 @@ private KafkaMessageListenerContainer constructContainer(ContainerProperti if (topicPartitions == null) { return null; } + if (this.concurrency == 1) { return topicPartitions; } - else { - int numPartitions = topicPartitions.length; - if (numPartitions == this.concurrency) { - return new TopicPartitionOffset[] { topicPartitions[index] }; - } - else { - int perContainer = numPartitions / this.concurrency; - TopicPartitionOffset[] subset; - if (index == this.concurrency - 1) { - subset = Arrays.copyOfRange(topicPartitions, index * perContainer, topicPartitions.length); - } - else { - subset = Arrays.copyOfRange(topicPartitions, index * perContainer, (index + 1) * perContainer); - } - return subset; - } + + int numPartitions = topicPartitions.length; + + if (numPartitions == this.concurrency) { + return new TopicPartitionOffset[] { topicPartitions[index] }; } + + int perContainer = numPartitions / this.concurrency; + int start = index * perContainer; + int end = (index == this.concurrency - 1) + ? numPartitions + : start + perContainer; + + return Arrays.copyOfRange(topicPartitions, start, end); } /*