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)