You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In what version(s) of Spring for Apache Kafka are you seeing this issue?
3.0.8
Describe the bug
Do not ask me why and how, using Spring Boot 3.1.1 it does happen under some situation - when b3 is not present in message it is added into Kafka Message headers anyway with null value and later on it fails on NPE. No matter how, KafkaRecordReceiverContext should be more bullet proof.
ava.lang.IllegalStateException: This error handler cannot process 'java.lang.NullPointerException's; no record information is available
at org.springframework.kafka.listener.DefaultErrorHandler.handleOtherException(DefaultErrorHandler.java:204)
at org.springframework.kafka.listener.KafkaMessageListenerContainer$ListenerConsumer.handleConsumerException(KafkaMessageListenerContainer.java:2011)
at org.springframework.kafka.listener.KafkaMessageListenerContainer$ListenerConsumer.run(KafkaMessageListenerContainer.java:1446)
at java.base/java.util.concurrent.CompletableFuture$AsyncRun.run$$$capture(CompletableFuture.java:1804)
at java.base/java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java)
at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: java.lang.NullPointerException: Cannot read the array length because "bytes" is null
at java.base/java.lang.String.<init>(String.java:1385)
at org.springframework.kafka.support.micrometer.KafkaRecordReceiverContext.lambda$new$0(KafkaRecordReceiverContext.java:46)
at io.micrometer.tracing.handler.PropagatingReceiverTracingObservationHandler.lambda$onStart$0(PropagatingReceiverTracingObservationHandler.java:59)
at brave.propagation.B3Propagation$B3Extractor.extract(B3Propagation.java:272)
at org.springframework.boot.actuate.autoconfigure.tracing.CompositePropagationFactory$CompositePropagation.lambda$extractor$5(CompositePropagationFactory.java:215)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
at java.base/java.util.AbstractList$RandomAccessSpliterator.tryAdvance(AbstractList.java:706)
at java.base/java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:129)
at java.base/java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:527)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:513)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at java.base/java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:150)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:647)
at org.springframework.boot.actuate.autoconfigure.tracing.CompositePropagationFactory$CompositePropagation.lambda$extractor$6(CompositePropagationFactory.java:217)
at brave.baggage.BaggagePropagation$BaggageExtractor.extract(BaggagePropagation.java:360)
at io.micrometer.tracing.brave.bridge.BravePropagator.extract(BravePropagator.java:58)
at io.micrometer.tracing.handler.PropagatingReceiverTracingObservationHandler.onStart(PropagatingReceiverTracingObservationHandler.java:58)
at io.micrometer.tracing.handler.PropagatingReceiverTracingObservationHandler.onStart(PropagatingReceiverTracingObservationHandler.java:35)
at io.micrometer.observation.ObservationHandler$FirstMatchingCompositeObservationHandler.onStart(ObservationHandler.java:149)
at io.micrometer.observation.SimpleObservation.notifyOnObservationStarted(SimpleObservation.java:222)
at io.micrometer.observation.SimpleObservation.start(SimpleObservation.java:169)
at io.micrometer.observation.Observation.observeWithContext(Observation.java:601)
at io.micrometer.observation.Observation.observe(Observation.java:544)
at org.springframework.kafka.listener.KafkaMessageListenerContainer$ListenerConsumer.doInvokeRecordListener(KafkaMessageListenerContainer.java:2820)
at org.springframework.kafka.listener.KafkaMessageListenerContainer$ListenerConsumer.doInvokeWithRecords(KafkaMessageListenerContainer.java:2672)
at org.springframework.kafka.listener.KafkaMessageListenerContainer$ListenerConsumer.invokeRecordListener(KafkaMessageListenerContainer.java:2558)
at org.springframework.kafka.listener.KafkaMessageListenerContainer$ListenerConsumer.invokeListener(KafkaMessageListenerContainer.java:2200)
at org.springframework.kafka.listener.KafkaMessageListenerContainer$ListenerConsumer.invokeIfHaveRecords(KafkaMessageListenerContainer.java:1555)
at org.springframework.kafka.listener.KafkaMessageListenerContainer$ListenerConsumer.pollAndInvoke(KafkaMessageListenerContainer.java:1519)
at org.springframework.kafka.listener.KafkaMessageListenerContainer$ListenerConsumer.run(KafkaMessageListenerContainer.java:1394)
The text was updated successfully, but these errors were encountered:
In what version(s) of Spring for Apache Kafka are you seeing this issue?
3.0.8
Describe the bug
Do not ask me why and how, using Spring Boot 3.1.1 it does happen under some situation - when
b3
is not present in message it is added into Kafka Message headers anyway withnull
value and later on it fails on NPE. No matter how,KafkaRecordReceiverContext
should be more bullet proof.The text was updated successfully, but these errors were encountered: