You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@kafka.apache.org by "huxihx (Jira)" <ji...@apache.org> on 2019/11/01 02:10:00 UTC

[jira] [Resolved] (KAFKA-9093) NullPointerException in KafkaConsumer with group.instance.id

     [ https://issues.apache.org/jira/browse/KAFKA-9093?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

huxihx resolved KAFKA-9093.
---------------------------
    Resolution: Fixed

> NullPointerException in KafkaConsumer with group.instance.id
> ------------------------------------------------------------
>
>                 Key: KAFKA-9093
>                 URL: https://issues.apache.org/jira/browse/KAFKA-9093
>             Project: Kafka
>          Issue Type: Bug
>          Components: clients
>    Affects Versions: 2.3.0
>            Reporter: Rolef Heinrich
>            Assignee: huxihx
>            Priority: Minor
>             Fix For: 2.3.2
>
>
> When using *group.instance.id=myUniqId[0]*, the KafkaConsumer's constructor throws a NullpointerException in close():
>  
> {code:java}
> Caused by: java.lang.NullPointerException
>  at org.apache.kafka.clients.consumer.KafkaConsumer.close(KafkaConsumer.java:2204)
>  at org.apache.kafka.clients.consumer.KafkaConsumer.<init>(KafkaConsumer.java:825)
>  at org.apache.kafka.clients.consumer.KafkaConsumer.<init>(KafkaConsumer.java:664)
>  at org.apache.kafka.clients.consumer.KafkaConsumer.<init>(KafkaConsumer.java:644)
> {code}
> {{It turns out that the exception is thrown because the *log* member is not yet initialized (still null) in the constructor when the original exception is handled. The original exception is thrown before *log* is initailized.}}
> {{The side effect of this error is, that close does does not cleanup resources as clean is supposed to do.}}
> *{{The used consumer properties for reference:}}*
>  
> {code:java}
> key.deserializer=com.ibm.streamsx.kafka.serialization....
> request.timeout.ms=25000
> value.deserializer=com.ibm.streamsx.kafka.serialization....
> client.dns.lookup=use_all_dns_ips
> metadata.max.age.ms=2000
> enable.auto.commit=false
> group.instance.id=myUniqId[0]
> max.poll.interval.ms=300000
> group.id=consumer-0
> metric.reporters=com.ibm.streamsx.kafka.clients.consum...
> reconnect.backoff.max.ms=10000
> bootstrap.servers=localhost:9092
> max.poll.records=50
> session.timeout.ms=20000
> client.id=C-J37-ReceivedMessages[0]
> allow.auto.create.topics=false
> metrics.sample.window.ms=10000
> retry.backoff.ms=500
> reconnect.backoff.ms=250{code}
> *Expected behaviour:* throw exception indicating that something is wrong with the chosen group.instance.id.
> The documentation does not tell anything about valid values for group.instance.id.
> *Reproduce:*
>  
>  
> {code:java}
>  
> import java.util.Properties;
> import org.apache.kafka.clients.consumer.ConsumerConfig;
> import org.apache.kafka.clients.consumer.KafkaConsumer;
> public class Main {
>     public static void main(String[] args) {
>         Properties props = new Properties();
>         props.put (ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, "localhost:9092");
>         props.put (ConsumerConfig.GROUP_ID_CONFIG, "group-Id1");
>         props.put (ConsumerConfig.GROUP_INSTANCE_ID_CONFIG, "myUniqId[0]");
>         props.put (ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, "org.apache.kafka.common.serialization.StringDeserializer");
>         props.put (ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, "org.apache.kafka.common.serialization.StringDeserializer");
>         KafkaConsumer c = new KafkaConsumer (props);
>     }
> }
> Exception in thread "main" java.lang.NullPointerException
> 	at org.apache.kafka.clients.consumer.KafkaConsumer.close(KafkaConsumer.java:2204)
> 	at org.apache.kafka.clients.consumer.KafkaConsumer.<init>(KafkaConsumer.java:825)
> 	at org.apache.kafka.clients.consumer.KafkaConsumer.<init>(KafkaConsumer.java:664)
> 	at org.apache.kafka.clients.consumer.KafkaConsumer.<init>(KafkaConsumer.java:644)
> 	at Main.main(Main.java:15)
> {code}
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)