Skip to content

NullPointerException in AbstractKafkaHeaderMapper #3581

@ITman1

Description

@ITman1

In what version(s) of Spring for Apache Kafka are you seeing this issue?

3.2.4

Describe the bug

When we updated Spring Boot to latest RELEASE version we started to get NullPointerException from our listener.

I am unable to find out what triggered this, but is happening when there is in ConsumerRecord some RecordHeader with null value.
image
This is probably bug in our custom application, but I think Spring Kafka header mapper should handle such cases in better way other than to throw NPE.

Caused by: java.lang.NullPointerException: Cannot read the array length because "bytes" is null
	at java.base/java.lang.String.<init>(String.java:1425)
	at org.springframework.kafka.support.AbstractKafkaHeaderMapper.mapRawIn(AbstractKafkaHeaderMapper.java:281)
	at org.springframework.kafka.support.AbstractKafkaHeaderMapper.headerValueToAddIn(AbstractKafkaHeaderMapper.java:270)
	at org.springframework.kafka.support.DefaultKafkaHeaderMapper.lambda$toHeaders$2(DefaultKafkaHeaderMapper.java:328)
	at java.base/java.lang.Iterable.forEach(Iterable.java:75)
	at org.springframework.kafka.support.DefaultKafkaHeaderMapper.toHeaders(DefaultKafkaHeaderMapper.java:310)
	at org.springframework.kafka.support.converter.MessagingMessageConverter.mapOrAddHeaders(MessagingMessageConverter.java:206)
	at org.springframework.kafka.support.converter.MessagingMessageConverter.toMessage(MessagingMessageConverter.java:184)
	at org.springframework.kafka.listener.adapter.MessagingMessageListenerAdapter.toMessagingMessage(MessagingMessageListenerAdapter.java:377)
	at org.springframework.kafka.listener.adapter.RecordMessagingMessageListenerAdapter.onMessage(RecordMessagingMessageListenerAdapter.java:77)
	at org.springframework.kafka.listener.adapter.RecordMessagingMessageListenerAdapter.onMessage(RecordMessagingMessageListenerAdapter.java:50)
	at org.springframework.kafka.listener.KafkaMessageListenerContainer$ListenerConsumer.doInvokeOnMessage(KafkaMessageListenerContainer.java:2800)
	... 13 common frames omitted

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions