diff --git a/spring-kafka/src/main/java/org/springframework/kafka/listener/adapter/MessagingMessageListenerAdapter.java b/spring-kafka/src/main/java/org/springframework/kafka/listener/adapter/MessagingMessageListenerAdapter.java index 50c91a1a..0d361ae3 100644 --- a/spring-kafka/src/main/java/org/springframework/kafka/listener/adapter/MessagingMessageListenerAdapter.java +++ b/spring-kafka/src/main/java/org/springframework/kafka/listener/adapter/MessagingMessageListenerAdapter.java @@ -491,14 +491,16 @@ public abstract class MessagingMessageListenerAdapter implements ConsumerS } boolean validParametersForBatch = validParametersForBatch(method.getGenericParameterTypes().length, this.hasAckParameter, hasConsumerParameter); - String stateMessage = "A parameter of type '%s' must be the only parameter " - + "(except for an optional 'Acknowledgment' and/or 'Consumer')"; - Assert.state(!this.isConsumerRecords || validParametersForBatch, - () -> String.format(stateMessage, "ConsumerRecords")); - Assert.state(!this.isConsumerRecordList || validParametersForBatch, - () -> String.format(stateMessage, "List")); - Assert.state(!this.isMessageList || validParametersForBatch, - () -> String.format(stateMessage, "List>")); + if (!validParametersForBatch) { + String stateMessage = "A parameter of type '%s' must be the only parameter " + + "(except for an optional 'Acknowledgment' and/or 'Consumer')"; + Assert.state(!this.isConsumerRecords, + () -> String.format(stateMessage, "ConsumerRecords")); + Assert.state(!this.isConsumerRecordList, + () -> String.format(stateMessage, "List")); + Assert.state(!this.isMessageList, + () -> String.format(stateMessage, "List>")); + } this.messageReturnType = KafkaUtils.returnTypeMessageOrCollectionOf(method); return genericParameterType; }