[ https://issues.apache.org/jira/browse/KAFKA-7048?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Chia-Ping Tsai updated KAFKA-7048: ---------------------------------- Issue Type: Bug (was: Improvement) > NPE when creating connector > --------------------------- > > Key: KAFKA-7048 > URL: https://issues.apache.org/jira/browse/KAFKA-7048 > Project: Kafka > Issue Type: Bug > Reporter: Chia-Ping Tsai > Assignee: Chia-Ping Tsai > Priority: Blocker > 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)