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 <[email protected]>
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 <[email protected]>
---
.../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;