Details
-
Bug
-
Status: Resolved
-
Minor
-
Resolution: Fixed
-
4.4.2, 4.6.0
-
Unknown
Description
A camel-kafka batching consumer is randomly catching NPEs.
This is happening with and w/o manual commit.
If the consumer is configured with pollOnError=RETRY then it causes lost records.
Please find a test to reproduce the issue attached.
java.lang.NullPointerException: Cannot invoke "java.util.List.add(Object)" because "this.exchangeList" is null at org.apache.camel.component.kafka.consumer.support.batching.KafkaRecordBatchingProcessor.processExchange(KafkaRecordBatchingProcessor.java:137) at org.apache.camel.component.kafka.consumer.support.batching.KafkaRecordBatchingProcessorFacade.processPolledRecords(KafkaRecordBatchingProcessorFacade.java:59) at org.apache.camel.component.kafka.KafkaFetchRecords.startPolling(KafkaFetchRecords.java:353) at org.apache.camel.component.kafka.KafkaFetchRecords.run(KafkaFetchRecords.java:173) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) at java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:264) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at java.base/java.lang.Thread.run(Thread.java:840)
Please let me know if any additional details are required here.