Rolef Heinrich created KAFKA-9093: ------------------------------------- Summary: 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 Fix For: 2.3.1
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)