[ 
https://issues.apache.org/jira/browse/KAFKA-7048?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16509880#comment-16509880
 ] 

Chia-Ping Tsai commented on KAFKA-7048:
---------------------------------------

{quote}Can you show the stack trace involving the NPE ?
{quote}
{code:java}
2018-06-13 00:57:49,324 DEBUG [qtp154246471-167] 
errors.ConnectExceptionMapper(39): Uncaught exception in REST call to 
/connectors
java.lang.NullPointerException
at 
org.apache.kafka.common.config.ConfigTransformer.transform(ConfigTransformer.java:79)
at 
org.apache.kafka.connect.runtime.WorkerConfigTransformer.transform(WorkerConfigTransformer.java:42)
at 
org.apache.kafka.connect.runtime.distributed.ClusterConfigState.connectorConfig(ClusterConfigState.java:120)
at 
org.apache.kafka.connect.runtime.distributed.DistributedHerder$6.call(DistributedHerder.java:559)
at 
org.apache.kafka.connect.runtime.distributed.DistributedHerder$6.call(DistributedHerder.java:535)
at 
org.apache.kafka.connect.runtime.distributed.DistributedHerder.tick(DistributedHerder.java:271)
at 
org.apache.kafka.connect.runtime.distributed.DistributedHerder.run(DistributedHerder.java:220)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748){code}

> 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)

Reply via email to