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)