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)

Reply via email to