You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jira@kafka.apache.org by "Ted Yu (JIRA)" <ji...@apache.org> on 2018/06/12 16:53:00 UTC
[jira] [Commented] (KAFKA-7048) NPE when creating connector
[ https://issues.apache.org/jira/browse/KAFKA-7048?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16509862#comment-16509862 ]
Ted Yu commented on KAFKA-7048:
-------------------------------
Can you show the stack trace involving the NPE ?
> 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)