This is an automated email from the ASF dual-hosted git repository.

tombentley pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/kafka.git


The following commit(s) were added to refs/heads/trunk by this push:
     new 5a5c058  MINOR: Fix use of ConfigException in AbstractConfig class 
(#11349)
5a5c058 is described below

commit 5a5c05807ddc82b183f4489e81b9ad02fe83a0df
Author: Chris Egerton <chr...@confluent.io>
AuthorDate: Tue Sep 28 02:26:10 2021 -0400

    MINOR: Fix use of ConfigException in AbstractConfig class (#11349)
    
    * Log full trace for class-not-found errors, improve accuracy of error 
messages
    
    Reviewers: Tom Bentley <tbent...@redhat.com>
---
 .../java/org/apache/kafka/common/config/AbstractConfig.java    | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git 
a/clients/src/main/java/org/apache/kafka/common/config/AbstractConfig.java 
b/clients/src/main/java/org/apache/kafka/common/config/AbstractConfig.java
index b3c7e85..7ef4609 100644
--- a/clients/src/main/java/org/apache/kafka/common/config/AbstractConfig.java
+++ b/clients/src/main/java/org/apache/kafka/common/config/AbstractConfig.java
@@ -561,7 +561,7 @@ public class AbstractConfig {
         Map<String, String> providerMap = new HashMap<>();
 
         for (String provider: configProviders.split(",")) {
-            String providerClass = CONFIG_PROVIDERS_CONFIG + "." + provider + 
".class";
+            String providerClass = providerClassProperty(provider);
             if (indirectConfigs.containsKey(providerClass))
                 providerMap.put(provider, indirectConfigs.get(providerClass));
 
@@ -576,14 +576,18 @@ public class AbstractConfig {
                 provider.configure(configProperties);
                 configProviderInstances.put(entry.getKey(), provider);
             } catch (ClassNotFoundException e) {
-                log.error("ClassNotFoundException exception occurred: " + 
entry.getValue());
-                throw new ConfigException("Invalid config:" + entry.getValue() 
+ " ClassNotFoundException exception occurred", e);
+                log.error("Could not load config provider class " + 
entry.getValue(), e);
+                throw new 
ConfigException(providerClassProperty(entry.getKey()), entry.getValue(), "Could 
not load config provider class or one of its dependencies");
             }
         }
 
         return configProviderInstances;
     }
 
+    private static String providerClassProperty(String providerName) {
+        return String.format("%s.%s.class", CONFIG_PROVIDERS_CONFIG, 
providerName);
+    }
+
     @Override
     public boolean equals(Object o) {
         if (this == o) return true;

Reply via email to