Chia-Ping Tsai created KAFKA-7048: ------------------------------------- Summary: NPE when creating >1 connectors Key: KAFKA-7048 URL: https://issues.apache.org/jira/browse/KAFKA-7048 Project: Kafka Issue Type: Improvement Reporter: Chia-Ping Tsai Assignee: Chia-Ping Tsai Fix For: 2.0.0
KAFKA-6886 introduced the ConfigTransformer to transform the given configuration data. ConfigTransformer#transform(Map<String, String>) expect the passed config won't be null but DistributedHerder#putConnectorConfig call the #transform before updating the snapshot (see below). Hence, it cause the NPE. {code:java} // Note that we use the updated connector config despite the fact that we don't have an updated // snapshot yet. The existing task info should still be accurate. Map<String, String> map = configState.connectorConfig(connName); ConnectorInfo info = new ConnectorInfo(connName, config, configState.tasks(connName), map == null ? null : connectorTypeForClass(map.get(ConnectorConfig.CONNECTOR_CLASS_CONFIG))); callback.onCompletion(null, new Created<>(!exists, info)); return null;{code} We can add a null check to "configs" (see below) to resolve the NPE. It means we WON'T pass the null configs to configTransformer {code:java} public Map<String, String> connectorConfig(String connector) { Map<String, String> configs = connectorConfigs.get(connector); if (configTransformer != null) { // add a condition "configs != null" configs = configTransformer.transform(connector, configs); } return configs; }{code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)