[ https://issues.apache.org/jira/browse/KAFKA-17770?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17888475#comment-17888475 ]
Greg Harris commented on KAFKA-17770: ------------------------------------- It looks like toUpperCase with the system default locale is also used in: * AclAuthorizer * KafkaConfig "zookeeper.ssl.endpoint.identification.algorithm" * Some tests * ShareGroupConfig toLowerCase with the system default locale is used in: * TopicAdmin * GroupMetadataManager * ConsumerGroupCommand * GroupCoordinator * GroupState * KafkaDockerWrapper * ExtendedAclStore * Some tests We should try to resolve this and other locale sensitivity where possible, and set up some testing or linting that would have found this. > system default Locale sensitivity in scala code uppercasing enums > ----------------------------------------------------------------- > > Key: KAFKA-17770 > URL: https://issues.apache.org/jira/browse/KAFKA-17770 > Project: Kafka > Issue Type: Bug > Reporter: Chris M. Hostetter > Priority: Major > > Code that invokes {{kafka.server.KafkaConfig}} can encounter "No enum > constant" for values that (IIUC) come from implicit defaults – {_}When the > system default Locale has uppercase rules that differ from English{_}! > This may not affect most kafka server deployments, but it can easily come up > when using embedded kafka for testing purposes – especially in downstream > projects that [explicitly randomize their locales > |http://labs.carrotsearch.com/randomizedtesting.html]to check for behavior > like this. > Below is an example stack trace from a test that uses > {{org.apache.kafka.streams.integration.utils.EmbeddedKafkaCluster}} (with no > custom configuration) when using the "az" locale (Similar errors can happen > with the "tr-TR" locale, etc...) > Note that the "I" in {{GroupType.CLASSİC}} is actually {{U+0130}} (not > {{{}U+0049{}}}) > {noformat} > > java.lang.IllegalArgumentException: No enum constant > org.apache.kafka.coordinator.group.Group.GroupType.CLASSİC > > at java.base/java.lang.Enum.valueOf(Enum.java:273) > > at > org.apache.kafka.coordinator.group.Group$GroupType.valueOf(Group.java:29) > > at > kafka.server.KafkaConfig.$anonfun$groupCoordinatorRebalanceProtocols$2(KafkaConfig.scala:2020) > > at > scala.collection.StrictOptimizedIterableOps.map(StrictOptimizedIterableOps.scala:100) > > at > scala.collection.StrictOptimizedIterableOps.map$(StrictOptimizedIterableOps.scala:87) > > at scala.collection.mutable.ArrayBuffer.map(ArrayBuffer.scala:43) > > at kafka.server.KafkaConfig.<init>(KafkaConfig.scala:2020) > > at kafka.server.KafkaConfig.<init>(KafkaConfig.scala:1639) > > at > org.apache.kafka.streams.integration.utils.KafkaEmbedded.<init>(KafkaEmbedded.java:72) > > at > org.apache.kafka.streams.integration.utils.EmbeddedKafkaCluster.start(EmbeddedKafkaCluster.java:131) > {noformat} -- This message was sent by Atlassian Jira (v8.20.10#820010)