You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@kafka.apache.org by "Rolef Heinrich (Jira)" <ji...@apache.org> on 2019/10/24 08:41:00 UTC
[jira] [Created] (KAFKA-9093) NullPointerException in KafkaConsumer
with group.instance.id
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)