Uploaded image for project: 'Kafka'
  1. Kafka
  2. KAFKA-12301

Support for enum validation in configuration

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Open
    • Major
    • Resolution: Unresolved
    • None
    • None
    • config
    • None

    Description

      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:

      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 

      This is easier to troubleshoot.

      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 

       

       

       

      Attachments

        Activity

          People

            jcustenborder Jeremy Custenborder
            jcustenborder Jeremy Custenborder
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated: