m1a2st commented on code in PR #16899: URL: https://github.com/apache/kafka/pull/16899#discussion_r1742852336
########## clients/src/main/java/org/apache/kafka/clients/consumer/ConsumerConfig.java: ########## @@ -727,6 +731,20 @@ private void checkGroupRemoteAssignor() { } } + @SuppressWarnings("unchecked") + private void checkPartitionAssigmentStrategy() { + List<Object> assignmentStrategies = (List<Object>) get(PARTITION_ASSIGNMENT_STRATEGY_CONFIG); + if (getString(GROUP_PROTOCOL_CONFIG).equalsIgnoreCase(GroupProtocol.CONSUMER.name())) { + if (PARTITION_ASSIGNOR_DEFAULT_VALUE.size() != assignmentStrategies.size() || + !PARTITION_ASSIGNOR_DEFAULT_VALUE.stream() + .allMatch(clz -> assignmentStrategies.stream() + .anyMatch(obj -> clz.equals(obj) || clz.getName().equals(obj))) + ) { + throw new ConfigException(PARTITION_ASSIGNMENT_STRATEGY_CONFIG + " cannot be set when " + GROUP_PROTOCOL_CONFIG + "=" + GroupProtocol.CONSUMER.name()); + } + } + } + Review Comment: Hello @kirktrue, Thanks for your comments, I think we have two scenario to discuss this issue If we want to block any input of `partition.assignment.strategy`, your method is more simplify and better, however if we allow user to input the default value of `partition.assignment.strategy`, we use the origin method is more easier to check. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: jira-unsubscr...@kafka.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org