Andrey Pustovetov created KAFKA-7407: ----------------------------------------
Summary: Kafka Connect validation ignores errors for undefined configs Key: KAFKA-7407 URL: https://issues.apache.org/jira/browse/KAFKA-7407 Project: Kafka Issue Type: Bug Components: KafkaConnect Affects Versions: 1.1.1 Reporter: Andrey Pustovetov *Test case* Perform validation of a custom connector that defines {{ConfigDef}} with undefined dependent configs, i.e. it uses {{ConfigDef.define()}} method where the config that is specified in {{dependents}} argument is missing in this {{ConfigDef}}. AR: validation successful ER: validation failed with the error: {{Configuration is not defined}} *Description* There are two places where undefined configs can be obtained: # The undefined dependent configs can be returned here: {{AbstractHerder.validateBasicConnectorConfig()}} -> {{ConfigDef.validateAll()}} {code:java} List<String> undefinedConfigKeys = undefinedDependentConfigs(); for (String undefinedConfigKey: undefinedConfigKeys) { ConfigValue undefinedConfigValue = new ConfigValue(undefinedConfigKey); undefinedConfigValue.addErrorMessage(undefinedConfigKey + " is referred in the dependents, but not defined."); undefinedConfigValue.visible(false); configValues.put(undefinedConfigKey, undefinedConfigValue); } {code} # The undefined configs can be returned by custom code here: {{Connector.validate()}} {{AbstractHerder.generateResult()}} method already contains the check for undefined configs, but it doesn't increase {{errorCount}} variable {code:java} int errorCount = 0; List<ConfigInfo> configInfoList = new LinkedList<>(); Map<String, ConfigValue> configValueMap = new HashMap<>(); for (ConfigValue configValue: configValues) { String configName = configValue.name(); configValueMap.put(configName, configValue); if (!configKeys.containsKey(configName)) { configValue.addErrorMessage("Configuration is not defined: " + configName); configInfoList.add(new ConfigInfo(null, convertConfigValue(configValue, null))); } } {code} so Kafka Connect validation ignores the errors. I suggest to add the following code after adding of the error message: {code:java} errorCount += configValue.errorMessages().size(); {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)