<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Kafka-commit-offset-manually -  java.lang.NullPointerException: Cannot invoke because &amp;quot;manual&amp;quot; is null in Talend Studio</title>
    <link>https://community.qlik.com/t5/Talend-Studio/Kafka-commit-offset-manually-java-lang-NullPointerException/m-p/2489787#M141468</link>
    <description>&lt;P&gt;Hello,&lt;/P&gt;
&lt;P&gt;I'm facing to a problem since few weeks and I have looking for a solution until the limb of the net without nothing.&lt;/P&gt;
&lt;P&gt;We are talking about kafkaManualCommit with Apache Camel 3.20.6 or 3.20.9 in a Talend route.&lt;/P&gt;
&lt;P&gt;It's working from Talend Studio but not as a bundle deployment in a runtime.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;FONT color="#FF0000"&gt;Exhausted after delivery attempt: 1 caught: java.lang.NullPointerException: Cannot invoke "org.apache.camel.component.kafka.consumer.KafkaManualCommit.commit()" because "manual" is null&lt;/FONT&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This artcile helps me but I'm stuck on a runtime: &lt;A href="https://community.qlik.com/t5/Design-and-Development/Kafka-commit-offset-manually/td-p/2325795" target="_blank" rel="noopener"&gt;https://community.qlik.com/t5/Design-and-Development/Kafka-commit-offset-manually/td-p/2325795&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;U&gt;Versions:&lt;/U&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Talend Studio version : R2024-08&lt;/LI&gt;
&lt;LI&gt;Java 17&lt;/LI&gt;
&lt;LI&gt;Talend Runtime version (last one): Patch_20241018_R2024-10_v1-RT-8.0.1.R2024-05-RT&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;U&gt;From Studio:&lt;/U&gt;&lt;/P&gt;
&lt;P&gt;I have created a custom bean jar with this code:&lt;/P&gt;
&lt;PRE&gt;package org.example.myruntimekafka.beansjar.mycustombean;&lt;BR /&gt;&lt;BR /&gt;import org.apache.camel.Exchange;&lt;BR /&gt;import org.apache.camel.component.kafka.KafkaConstants;&lt;BR /&gt;import org.apache.camel.component.kafka.consumer.KafkaManualCommit;&lt;BR /&gt;&lt;BR /&gt;public class myMisterbean {&lt;BR /&gt;    &lt;BR /&gt;    public static void kafkaManualCommit(Exchange exch) {&lt;BR /&gt;        KafkaManualCommit manual = exch.getIn().getHeader(KafkaConstants.MANUAL_COMMIT, KafkaManualCommit.class);&amp;nbsp;&lt;BR /&gt;        manual.commit();&lt;BR /&gt;    }&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In a cProcessor :&lt;/P&gt;
&lt;PRE&gt;&lt;SPAN&gt;org.example.myruntimekafka.beansjar.mycustombean.myMisterbean.kafkaManualCommit(exchange);&lt;/SPAN&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;CommitAuto is disabled for Ckafka and allowManualCommit is true.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;So now it's working from Talend Studio, I read a message with the cKafka consumer and commit offset with cProcessor.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;U&gt;From Runtime:&lt;/U&gt;&lt;/P&gt;
&lt;P&gt;After deploy from the TAC or download as a kar in the deploy directory, I have this error:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;2024-10-29T17:15:37,189 | WARN | Camel (myruntimekafka.mystreamkafkapoc_0_1.myStreamKafkaPoc) thread #7 - KafkaConsumer[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] | org.apache.camel.spi.CamelLogger 172 | 96 - org.apache.camel.camel-api - 3.20.9 | Exchange[ExchangePattern: InOnly, BodyType: String, Body: toto]&lt;BR /&gt;2024-10-29T17:15:37,191 | ERROR | Camel (myruntimekafka.mystreamkafkapoc_0_1.myStreamKafkaPoc) thread #7 - KafkaConsumer[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] | org.apache.camel.spi.CamelLogger 205 | 111 - org.apache.camel.camel-core-reifier - 3.20.9 | Failed delivery for (MessageId: A4A6B98485A1374-0000000000000000 on ExchangeId: A4A6B98485A1374-0000000000000000). Exhausted after delivery attempt: 1 caught: java.lang.NullPointerException: Cannot invoke "org.apache.camel.component.kafka.consumer.KafkaManualCommit.commit()" because "manual" is null&lt;BR /&gt;&lt;BR /&gt;Message History (complete message history is disabled)&lt;BR /&gt;---------------------------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;Source ID Processor Elapsed (ms)&lt;BR /&gt;java:149 myStreamKafkaPoc_cKafka_1/mySt from[kafka://XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX? 2419473435&lt;BR /&gt;...&lt;BR /&gt;java:153 myStreamKafkaPoc_cKafka_1/mySt Processor@0x42abfead 0&lt;BR /&gt;&lt;BR /&gt;Stacktrace&lt;BR /&gt;---------------------------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;java.lang.NullPointerException: Cannot invoke "org.apache.camel.component.kafka.consumer.KafkaManualCommit.commit()" because "manual" is null&lt;BR /&gt;at org.example.myruntimekafka.beansjar.mycustombean.myMisterbean.kafkaManualCommit(myMisterbean.java:42) ~[mycustombean-8.0.1.jar:?]&lt;BR /&gt;at myruntimekafka.mystreamkafkapoc_0_1.myStreamKafkaPoc$1.process(myStreamKafkaPoc.java:165) ~[bundleFile:?]&lt;BR /&gt;at org.apache.camel.support.processor.DelegateSyncProcessor.process(DelegateSyncProcessor.java:65) ~[bundleFile:3.20.9.20240425]&lt;BR /&gt;at org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$SimpleTask.run(RedeliveryErrorHandler.java:477) ~[?:?]&lt;BR /&gt;at org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.schedule(DefaultReactiveExecutor.java:181) ~[?:?]&lt;BR /&gt;at org.apache.camel.impl.engine.DefaultReactiveExecutor.scheduleMain(DefaultReactiveExecutor.java:59) ~[?:?]&lt;BR /&gt;at org.apache.camel.processor.Pipeline.process(Pipeline.java:165) ~[?:?]&lt;BR /&gt;at org.apache.camel.impl.engine.CamelInternalProcessor.process(CamelInternalProcessor.java:392) ~[?:?]&lt;BR /&gt;at org.apache.camel.impl.engine.DefaultAsyncProcessorAwaitManager.process(DefaultAsyncProcessorAwaitManager.java:83) ~[?:?]&lt;BR /&gt;at org.apache.camel.support.AsyncProcessorSupport.process(AsyncProcessorSupport.java:41) ~[bundleFile:3.20.9.20240425]&lt;BR /&gt;at org.apache.camel.component.kafka.consumer.support.KafkaRecordProcessor.processExchange(KafkaRecordProcessor.java:110) ~[camel-kafka-3.20.6.jar:3.20.6]&lt;BR /&gt;at org.apache.camel.component.kafka.consumer.support.KafkaRecordProcessorFacade.processRecord(KafkaRecordProcessorFacade.java:125) ~[camel-kafka-3.20.6.jar:3.20.6]&lt;BR /&gt;at org.apache.camel.component.kafka.consumer.support.KafkaRecordProcessorFacade.processPolledRecords(KafkaRecordProcessorFacade.java:78) ~[camel-kafka-3.20.6.jar:3.20.6]&lt;BR /&gt;at org.apache.camel.component.kafka.KafkaFetchRecords.startPolling(KafkaFetchRecords.java:328) ~[camel-kafka-3.20.6.jar:3.20.6]&lt;BR /&gt;at org.apache.camel.component.kafka.KafkaFetchRecords.run(KafkaFetchRecords.java:160) ~[camel-kafka-3.20.6.jar:3.20.6]&lt;BR /&gt;at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) ~[?:?]&lt;BR /&gt;at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?]&lt;BR /&gt;at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[?:?]&lt;BR /&gt;at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?]&lt;BR /&gt;at java.lang.Thread.run(Thread.java:842) ~[?:?]&lt;BR /&gt;2024-10-29T17:15:37,196 | WARN | Camel (myruntimekafka.mystreamkafkapoc_0_1.myStreamKafkaPoc) thread #7 - KafkaConsumer[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] | org.apache.camel.spi.CamelLogger 214 | 134 - org.apache.camel.camel-support - 3.20.9.20240425 | Error during processing. Exchange[A4A6B98485A1374-0000000000000000]. Caused by: [java.lang.NullPointerException - Cannot invoke "org.apache.camel.component.kafka.consumer.KafkaManualCommit.commit()" because "manual" is null]&lt;BR /&gt;java.lang.NullPointerException: Cannot invoke "org.apache.camel.component.kafka.consumer.KafkaManualCommit.commit()" because "manual" is null&lt;BR /&gt;at org.example.myruntimekafka.beansjar.mycustombean.myMisterbean.kafkaManualCommit(myMisterbean.java:42) ~[mycustombean-8.0.1.jar:?]&lt;BR /&gt;at myruntimekafka.mystreamkafkapoc_0_1.myStreamKafkaPoc$1.process(myStreamKafkaPoc.java:165) ~[bundleFile:?]&lt;BR /&gt;at org.apache.camel.support.processor.DelegateSyncProcessor.process(DelegateSyncProcessor.java:65) ~[bundleFile:3.20.9.20240425]&lt;BR /&gt;at org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$SimpleTask.run(RedeliveryErrorHandler.java:477) ~[?:?]&lt;BR /&gt;at org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.schedule(DefaultReactiveExecutor.java:181) ~[?:?]&lt;BR /&gt;at org.apache.camel.impl.engine.DefaultReactiveExecutor.scheduleMain(DefaultReactiveExecutor.java:59) ~[?:?]&lt;BR /&gt;at org.apache.camel.processor.Pipeline.process(Pipeline.java:165) ~[?:?]&lt;BR /&gt;at org.apache.camel.impl.engine.CamelInternalProcessor.process(CamelInternalProcessor.java:392) ~[?:?]&lt;BR /&gt;at org.apache.camel.impl.engine.DefaultAsyncProcessorAwaitManager.process(DefaultAsyncProcessorAwaitManager.java:83) ~[?:?]&lt;BR /&gt;at org.apache.camel.support.AsyncProcessorSupport.process(AsyncProcessorSupport.java:41) ~[bundleFile:3.20.9.20240425]&lt;BR /&gt;at org.apache.camel.component.kafka.consumer.support.KafkaRecordProcessor.processExchange(KafkaRecordProcessor.java:110) ~[camel-kafka-3.20.6.jar:3.20.6]&lt;BR /&gt;at org.apache.camel.component.kafka.consumer.support.KafkaRecordProcessorFacade.processRecord(KafkaRecordProcessorFacade.java:125) ~[camel-kafka-3.20.6.jar:3.20.6]&lt;BR /&gt;at org.apache.camel.component.kafka.consumer.support.KafkaRecordProcessorFacade.processPolledRecords(KafkaRecordProcessorFacade.java:78) ~[camel-kafka-3.20.6.jar:3.20.6]&lt;BR /&gt;at org.apache.camel.component.kafka.KafkaFetchRecords.startPolling(KafkaFetchRecords.java:328) ~[camel-kafka-3.20.6.jar:3.20.6]&lt;BR /&gt;at org.apache.camel.component.kafka.KafkaFetchRecords.run(KafkaFetchRecords.java:160) ~[camel-kafka-3.20.6.jar:3.20.6]&lt;BR /&gt;at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) ~[?:?]&lt;BR /&gt;at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?]&lt;BR /&gt;at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[?:?]&lt;BR /&gt;at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?]&lt;BR /&gt;at java.lang.Thread.run(Thread.java:842) ~[?:?]&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I have print some informations to see something&lt;/P&gt;
&lt;DIV style="background-color: #fafafa; padding: 0px 0px 0px 2px;"&gt;
&lt;DIV style="color: #000000; background-color: #fafafa; font-family: 'Consolas'; font-size: 10pt; white-space: pre;"&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; System.&lt;/SPAN&gt;&lt;SPAN&gt;out&lt;/SPAN&gt;&lt;SPAN&gt;.println(&lt;/SPAN&gt;&lt;SPAN&gt;"Exchange"&lt;/SPAN&gt;&lt;SPAN&gt; + &lt;/SPAN&gt;&lt;SPAN&gt;exch&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; System.&lt;/SPAN&gt;&lt;SPAN&gt;out&lt;/SPAN&gt;&lt;SPAN&gt;.println(&lt;/SPAN&gt;&lt;SPAN&gt;"KafkaConstants"&lt;/SPAN&gt;&lt;SPAN&gt; + KafkaConstants.&lt;/SPAN&gt;&lt;SPAN&gt;MANUAL_COMMIT&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; Boolean lastOne = exch.getIn().getHeader(KafkaConstants.LAST_RECORD_BEFORE_COMMIT, Boolean.class);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; System.out.println("bool" + lastOne);&lt;/SPAN&gt;&lt;/P&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;but it works:&lt;/P&gt;
&lt;PRE&gt;ExchangeExchange[203894ECF30EE33-0000000000000000]&lt;BR /&gt;KafkaConstantsCamelKafkaManualCommit&lt;BR /&gt;booltrue&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Also something like this&lt;/P&gt;
&lt;PRE&gt;exch.getIn().getHeader(KafkaConstants.MANUAL_COMMIT, KafkaManualCommit.class).commit();&lt;/PRE&gt;
&lt;P&gt;And I have&lt;/P&gt;
&lt;PRE&gt;2024-10-29T11:37:54,972 | ERROR | Camel (myruntimekafka.mystreamkafkapoc_0_1.myStreamKafkaPoc) thread #5 - KafkaConsumer[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] | org.apache.camel.spi.CamelLogger 205 | 111 - org.apache.camel.camel-core-reifier - 3.20.9 | Failed delivery for (MessageId: 2F88C0A67D3F5A5-0000000000000001 on ExchangeId: 2F88C0A67D3F5A5-0000000000000001). Exhausted after delivery attempt: 1 caught: java.lang.NullPointerException: Cannot invoke "org.apache.camel.component.kafka.consumer.KafkaManualCommit.commit()" because the return value of "org.apache.camel.Message.getHeader(String, java.lang.Class)" is null&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If you have any idea !&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks for your help.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;--&lt;/P&gt;
&lt;P&gt;Gregg&lt;/P&gt;</description>
    <pubDate>Tue, 29 Oct 2024 16:32:32 GMT</pubDate>
    <dc:creator>TalendDisaster</dc:creator>
    <dc:date>2024-10-29T16:32:32Z</dc:date>
    <item>
      <title>Kafka-commit-offset-manually -  java.lang.NullPointerException: Cannot invoke because "manual" is null</title>
      <link>https://community.qlik.com/t5/Talend-Studio/Kafka-commit-offset-manually-java-lang-NullPointerException/m-p/2489787#M141468</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;
&lt;P&gt;I'm facing to a problem since few weeks and I have looking for a solution until the limb of the net without nothing.&lt;/P&gt;
&lt;P&gt;We are talking about kafkaManualCommit with Apache Camel 3.20.6 or 3.20.9 in a Talend route.&lt;/P&gt;
&lt;P&gt;It's working from Talend Studio but not as a bundle deployment in a runtime.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;FONT color="#FF0000"&gt;Exhausted after delivery attempt: 1 caught: java.lang.NullPointerException: Cannot invoke "org.apache.camel.component.kafka.consumer.KafkaManualCommit.commit()" because "manual" is null&lt;/FONT&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This artcile helps me but I'm stuck on a runtime: &lt;A href="https://community.qlik.com/t5/Design-and-Development/Kafka-commit-offset-manually/td-p/2325795" target="_blank" rel="noopener"&gt;https://community.qlik.com/t5/Design-and-Development/Kafka-commit-offset-manually/td-p/2325795&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;U&gt;Versions:&lt;/U&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Talend Studio version : R2024-08&lt;/LI&gt;
&lt;LI&gt;Java 17&lt;/LI&gt;
&lt;LI&gt;Talend Runtime version (last one): Patch_20241018_R2024-10_v1-RT-8.0.1.R2024-05-RT&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;U&gt;From Studio:&lt;/U&gt;&lt;/P&gt;
&lt;P&gt;I have created a custom bean jar with this code:&lt;/P&gt;
&lt;PRE&gt;package org.example.myruntimekafka.beansjar.mycustombean;&lt;BR /&gt;&lt;BR /&gt;import org.apache.camel.Exchange;&lt;BR /&gt;import org.apache.camel.component.kafka.KafkaConstants;&lt;BR /&gt;import org.apache.camel.component.kafka.consumer.KafkaManualCommit;&lt;BR /&gt;&lt;BR /&gt;public class myMisterbean {&lt;BR /&gt;    &lt;BR /&gt;    public static void kafkaManualCommit(Exchange exch) {&lt;BR /&gt;        KafkaManualCommit manual = exch.getIn().getHeader(KafkaConstants.MANUAL_COMMIT, KafkaManualCommit.class);&amp;nbsp;&lt;BR /&gt;        manual.commit();&lt;BR /&gt;    }&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In a cProcessor :&lt;/P&gt;
&lt;PRE&gt;&lt;SPAN&gt;org.example.myruntimekafka.beansjar.mycustombean.myMisterbean.kafkaManualCommit(exchange);&lt;/SPAN&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;CommitAuto is disabled for Ckafka and allowManualCommit is true.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;So now it's working from Talend Studio, I read a message with the cKafka consumer and commit offset with cProcessor.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;U&gt;From Runtime:&lt;/U&gt;&lt;/P&gt;
&lt;P&gt;After deploy from the TAC or download as a kar in the deploy directory, I have this error:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;2024-10-29T17:15:37,189 | WARN | Camel (myruntimekafka.mystreamkafkapoc_0_1.myStreamKafkaPoc) thread #7 - KafkaConsumer[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] | org.apache.camel.spi.CamelLogger 172 | 96 - org.apache.camel.camel-api - 3.20.9 | Exchange[ExchangePattern: InOnly, BodyType: String, Body: toto]&lt;BR /&gt;2024-10-29T17:15:37,191 | ERROR | Camel (myruntimekafka.mystreamkafkapoc_0_1.myStreamKafkaPoc) thread #7 - KafkaConsumer[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] | org.apache.camel.spi.CamelLogger 205 | 111 - org.apache.camel.camel-core-reifier - 3.20.9 | Failed delivery for (MessageId: A4A6B98485A1374-0000000000000000 on ExchangeId: A4A6B98485A1374-0000000000000000). Exhausted after delivery attempt: 1 caught: java.lang.NullPointerException: Cannot invoke "org.apache.camel.component.kafka.consumer.KafkaManualCommit.commit()" because "manual" is null&lt;BR /&gt;&lt;BR /&gt;Message History (complete message history is disabled)&lt;BR /&gt;---------------------------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;Source ID Processor Elapsed (ms)&lt;BR /&gt;java:149 myStreamKafkaPoc_cKafka_1/mySt from[kafka://XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX? 2419473435&lt;BR /&gt;...&lt;BR /&gt;java:153 myStreamKafkaPoc_cKafka_1/mySt Processor@0x42abfead 0&lt;BR /&gt;&lt;BR /&gt;Stacktrace&lt;BR /&gt;---------------------------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;java.lang.NullPointerException: Cannot invoke "org.apache.camel.component.kafka.consumer.KafkaManualCommit.commit()" because "manual" is null&lt;BR /&gt;at org.example.myruntimekafka.beansjar.mycustombean.myMisterbean.kafkaManualCommit(myMisterbean.java:42) ~[mycustombean-8.0.1.jar:?]&lt;BR /&gt;at myruntimekafka.mystreamkafkapoc_0_1.myStreamKafkaPoc$1.process(myStreamKafkaPoc.java:165) ~[bundleFile:?]&lt;BR /&gt;at org.apache.camel.support.processor.DelegateSyncProcessor.process(DelegateSyncProcessor.java:65) ~[bundleFile:3.20.9.20240425]&lt;BR /&gt;at org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$SimpleTask.run(RedeliveryErrorHandler.java:477) ~[?:?]&lt;BR /&gt;at org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.schedule(DefaultReactiveExecutor.java:181) ~[?:?]&lt;BR /&gt;at org.apache.camel.impl.engine.DefaultReactiveExecutor.scheduleMain(DefaultReactiveExecutor.java:59) ~[?:?]&lt;BR /&gt;at org.apache.camel.processor.Pipeline.process(Pipeline.java:165) ~[?:?]&lt;BR /&gt;at org.apache.camel.impl.engine.CamelInternalProcessor.process(CamelInternalProcessor.java:392) ~[?:?]&lt;BR /&gt;at org.apache.camel.impl.engine.DefaultAsyncProcessorAwaitManager.process(DefaultAsyncProcessorAwaitManager.java:83) ~[?:?]&lt;BR /&gt;at org.apache.camel.support.AsyncProcessorSupport.process(AsyncProcessorSupport.java:41) ~[bundleFile:3.20.9.20240425]&lt;BR /&gt;at org.apache.camel.component.kafka.consumer.support.KafkaRecordProcessor.processExchange(KafkaRecordProcessor.java:110) ~[camel-kafka-3.20.6.jar:3.20.6]&lt;BR /&gt;at org.apache.camel.component.kafka.consumer.support.KafkaRecordProcessorFacade.processRecord(KafkaRecordProcessorFacade.java:125) ~[camel-kafka-3.20.6.jar:3.20.6]&lt;BR /&gt;at org.apache.camel.component.kafka.consumer.support.KafkaRecordProcessorFacade.processPolledRecords(KafkaRecordProcessorFacade.java:78) ~[camel-kafka-3.20.6.jar:3.20.6]&lt;BR /&gt;at org.apache.camel.component.kafka.KafkaFetchRecords.startPolling(KafkaFetchRecords.java:328) ~[camel-kafka-3.20.6.jar:3.20.6]&lt;BR /&gt;at org.apache.camel.component.kafka.KafkaFetchRecords.run(KafkaFetchRecords.java:160) ~[camel-kafka-3.20.6.jar:3.20.6]&lt;BR /&gt;at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) ~[?:?]&lt;BR /&gt;at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?]&lt;BR /&gt;at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[?:?]&lt;BR /&gt;at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?]&lt;BR /&gt;at java.lang.Thread.run(Thread.java:842) ~[?:?]&lt;BR /&gt;2024-10-29T17:15:37,196 | WARN | Camel (myruntimekafka.mystreamkafkapoc_0_1.myStreamKafkaPoc) thread #7 - KafkaConsumer[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] | org.apache.camel.spi.CamelLogger 214 | 134 - org.apache.camel.camel-support - 3.20.9.20240425 | Error during processing. Exchange[A4A6B98485A1374-0000000000000000]. Caused by: [java.lang.NullPointerException - Cannot invoke "org.apache.camel.component.kafka.consumer.KafkaManualCommit.commit()" because "manual" is null]&lt;BR /&gt;java.lang.NullPointerException: Cannot invoke "org.apache.camel.component.kafka.consumer.KafkaManualCommit.commit()" because "manual" is null&lt;BR /&gt;at org.example.myruntimekafka.beansjar.mycustombean.myMisterbean.kafkaManualCommit(myMisterbean.java:42) ~[mycustombean-8.0.1.jar:?]&lt;BR /&gt;at myruntimekafka.mystreamkafkapoc_0_1.myStreamKafkaPoc$1.process(myStreamKafkaPoc.java:165) ~[bundleFile:?]&lt;BR /&gt;at org.apache.camel.support.processor.DelegateSyncProcessor.process(DelegateSyncProcessor.java:65) ~[bundleFile:3.20.9.20240425]&lt;BR /&gt;at org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$SimpleTask.run(RedeliveryErrorHandler.java:477) ~[?:?]&lt;BR /&gt;at org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.schedule(DefaultReactiveExecutor.java:181) ~[?:?]&lt;BR /&gt;at org.apache.camel.impl.engine.DefaultReactiveExecutor.scheduleMain(DefaultReactiveExecutor.java:59) ~[?:?]&lt;BR /&gt;at org.apache.camel.processor.Pipeline.process(Pipeline.java:165) ~[?:?]&lt;BR /&gt;at org.apache.camel.impl.engine.CamelInternalProcessor.process(CamelInternalProcessor.java:392) ~[?:?]&lt;BR /&gt;at org.apache.camel.impl.engine.DefaultAsyncProcessorAwaitManager.process(DefaultAsyncProcessorAwaitManager.java:83) ~[?:?]&lt;BR /&gt;at org.apache.camel.support.AsyncProcessorSupport.process(AsyncProcessorSupport.java:41) ~[bundleFile:3.20.9.20240425]&lt;BR /&gt;at org.apache.camel.component.kafka.consumer.support.KafkaRecordProcessor.processExchange(KafkaRecordProcessor.java:110) ~[camel-kafka-3.20.6.jar:3.20.6]&lt;BR /&gt;at org.apache.camel.component.kafka.consumer.support.KafkaRecordProcessorFacade.processRecord(KafkaRecordProcessorFacade.java:125) ~[camel-kafka-3.20.6.jar:3.20.6]&lt;BR /&gt;at org.apache.camel.component.kafka.consumer.support.KafkaRecordProcessorFacade.processPolledRecords(KafkaRecordProcessorFacade.java:78) ~[camel-kafka-3.20.6.jar:3.20.6]&lt;BR /&gt;at org.apache.camel.component.kafka.KafkaFetchRecords.startPolling(KafkaFetchRecords.java:328) ~[camel-kafka-3.20.6.jar:3.20.6]&lt;BR /&gt;at org.apache.camel.component.kafka.KafkaFetchRecords.run(KafkaFetchRecords.java:160) ~[camel-kafka-3.20.6.jar:3.20.6]&lt;BR /&gt;at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) ~[?:?]&lt;BR /&gt;at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?]&lt;BR /&gt;at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[?:?]&lt;BR /&gt;at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?]&lt;BR /&gt;at java.lang.Thread.run(Thread.java:842) ~[?:?]&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I have print some informations to see something&lt;/P&gt;
&lt;DIV style="background-color: #fafafa; padding: 0px 0px 0px 2px;"&gt;
&lt;DIV style="color: #000000; background-color: #fafafa; font-family: 'Consolas'; font-size: 10pt; white-space: pre;"&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; System.&lt;/SPAN&gt;&lt;SPAN&gt;out&lt;/SPAN&gt;&lt;SPAN&gt;.println(&lt;/SPAN&gt;&lt;SPAN&gt;"Exchange"&lt;/SPAN&gt;&lt;SPAN&gt; + &lt;/SPAN&gt;&lt;SPAN&gt;exch&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; System.&lt;/SPAN&gt;&lt;SPAN&gt;out&lt;/SPAN&gt;&lt;SPAN&gt;.println(&lt;/SPAN&gt;&lt;SPAN&gt;"KafkaConstants"&lt;/SPAN&gt;&lt;SPAN&gt; + KafkaConstants.&lt;/SPAN&gt;&lt;SPAN&gt;MANUAL_COMMIT&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; Boolean lastOne = exch.getIn().getHeader(KafkaConstants.LAST_RECORD_BEFORE_COMMIT, Boolean.class);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; System.out.println("bool" + lastOne);&lt;/SPAN&gt;&lt;/P&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;but it works:&lt;/P&gt;
&lt;PRE&gt;ExchangeExchange[203894ECF30EE33-0000000000000000]&lt;BR /&gt;KafkaConstantsCamelKafkaManualCommit&lt;BR /&gt;booltrue&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Also something like this&lt;/P&gt;
&lt;PRE&gt;exch.getIn().getHeader(KafkaConstants.MANUAL_COMMIT, KafkaManualCommit.class).commit();&lt;/PRE&gt;
&lt;P&gt;And I have&lt;/P&gt;
&lt;PRE&gt;2024-10-29T11:37:54,972 | ERROR | Camel (myruntimekafka.mystreamkafkapoc_0_1.myStreamKafkaPoc) thread #5 - KafkaConsumer[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] | org.apache.camel.spi.CamelLogger 205 | 111 - org.apache.camel.camel-core-reifier - 3.20.9 | Failed delivery for (MessageId: 2F88C0A67D3F5A5-0000000000000001 on ExchangeId: 2F88C0A67D3F5A5-0000000000000001). Exhausted after delivery attempt: 1 caught: java.lang.NullPointerException: Cannot invoke "org.apache.camel.component.kafka.consumer.KafkaManualCommit.commit()" because the return value of "org.apache.camel.Message.getHeader(String, java.lang.Class)" is null&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If you have any idea !&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks for your help.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;--&lt;/P&gt;
&lt;P&gt;Gregg&lt;/P&gt;</description>
      <pubDate>Tue, 29 Oct 2024 16:32:32 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Talend-Studio/Kafka-commit-offset-manually-java-lang-NullPointerException/m-p/2489787#M141468</guid>
      <dc:creator>TalendDisaster</dc:creator>
      <dc:date>2024-10-29T16:32:32Z</dc:date>
    </item>
  </channel>
</rss>

