Jeremy Custenborder created KAFKA-12301:
-------------------------------------------

             Summary: Support for enum validation in configuration  
                 Key: KAFKA-12301
                 URL: https://issues.apache.org/jira/browse/KAFKA-12301
             Project: Kafka
          Issue Type: Improvement
          Components: config
            Reporter: Jeremy Custenborder
            Assignee: Jeremy Custenborder


Several configuration elements are mapped to internal enums. A typo in 
configuration will yield error messages that are not descriptive and require 
the user to find valid values. 

For example:
{code:java}
Exception in thread "main" org.apache.kafka.common.KafkaException: Failed to 
create new KafkaAdminClient
        at 
org.apache.kafka.clients.admin.KafkaAdminClient.createInternal(KafkaAdminClient.java:479)
        at org.apache.kafka.clients.admin.Admin.create(Admin.java:61)
        at 
org.apache.kafka.clients.admin.AdminClient.create(AdminClient.java:39)
        ...
Caused by: java.lang.IllegalArgumentException: No enum constant 
org.apache.kafka.common.security.auth.SecurityProtocol.SASL_PLAINTEXTA
        at java.lang.Enum.valueOf(Enum.java:238)
        at 
org.apache.kafka.common.security.auth.SecurityProtocol.valueOf(SecurityProtocol.java:26)
        at 
org.apache.kafka.common.security.auth.SecurityProtocol.forName(SecurityProtocol.java:72)
        at 
org.apache.kafka.clients.ClientUtils.createChannelBuilder(ClientUtils.java:103)
        at 
org.apache.kafka.clients.admin.KafkaAdminClient.createInternal(KafkaAdminClient.java:454)
        ... 7 more {code}
This is easier to troubleshoot.
{code:java}
Exception in thread "main" org.apache.kafka.common.KafkaException: Failed to 
create new KafkaAdminClient
        at 
org.apache.kafka.clients.admin.KafkaAdminClient.createInternal(KafkaAdminClient.java:479)
        at org.apache.kafka.clients.admin.Admin.create(Admin.java:61)
        at 
org.apache.kafka.clients.admin.AdminClient.create(AdminClient.java:39)
        ...
Caused by: org.apache.kafka.common.config.ConfigException: Invalid value 
SASL_PLAINTEXTA for security.protocol. Enum value not found. Valid values are: 
PLAINTEXT, SASL_PLAINTEXT, SASL_SSL, SSL
        at java.lang.Enum.valueOf(Enum.java:238)
        at 
org.apache.kafka.common.security.auth.SecurityProtocol.valueOf(SecurityProtocol.java:26)
        at 
org.apache.kafka.common.security.auth.SecurityProtocol.forName(SecurityProtocol.java:72)
        at 
org.apache.kafka.clients.ClientUtils.createChannelBuilder(ClientUtils.java:103)
        at 
org.apache.kafka.clients.admin.KafkaAdminClient.createInternal(KafkaAdminClient.java:454)
        ... 7 more {code}
 

 

 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to