You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jira@kafka.apache.org by "Chia-Ping Tsai (Jira)" <ji...@apache.org> on 2026/09/14 16:07:00 UTC
[jira] [Created] (KAFKA-21093) Ensure all ConfigProviders get closed before throwing exception
Chia-Ping Tsai created KAFKA-21093:
--------------------------------------
Summary: Ensure all ConfigProviders get closed before throwing exception
Key: KAFKA-21093
URL: https://issues.apache.org/jira/browse/KAFKA-21093
Project: Kafka
Issue Type: Bug
Reporter: Chia-Ping Tsai
Assignee: Chia-Ping Tsai
There are two paths where providers are created and configured but never closed. We should keep the resources clean as much as possible 😊
{code:java}
    Map<String, ConfigProvider> configProviderInstances = new HashMap<>();
    for (Map.Entry<String, String> entry : providerMap.entrySet()) {
      try {
        String prefix = CONFIG_PROVIDERS_CONFIG + "." + entry.getKey() + CONFIG_PROVIDERS_PARAM;
        Map<String, ?> configProperties = configProviderProperties(prefix, providerConfigProperties);
        ConfigProvider provider = Utils.newInstance(entry.getValue(), ConfigProvider.class);
        provider.configure(configProperties);
        configProviderInstances.put(entry.getKey(), provider);
      } catch (ClassNotFoundException 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");
      }
    } {code}
{code:java}
    if (!providers.isEmpty()) {       ConfigTransformer configTransformer = new ConfigTransformer(providers);       ConfigTransformerResult result = configTransformer.transform(indirectVariables);       if (!result.data().isEmpty()) {         resolvedOriginals.putAll(result.data());       }     }     providers.values().forEach(x -> Utils.closeQuietly(x, "config provider"));
{code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)