I have an application that uses Camel 2.21.1 and Kafka 1.1

I had a bug where the deserializer for the consumer threw an exception when 
deserializing the message. I could see an exception in the log, but the 
consumer never handled the exception and the message was throwing an exception 
each time, forever. Why didn't camel see the exception so that the application 
code could commit that offset?

This is my consumer endpoint
                @EndpointInject(uri = 
"kafka:{{deep.send.order.email}}?brokers={{deep.notify.kafka.server}}&groupId=orders-enrichment-grp&"+
                        "autoCommitEnable=false&allowManualCommit=true&" +
            "maxPollRecords={{deep.kafka.poll.count}}&" +
                                                
"keyDeserializer=org.apache.kafka.common.serialization.StringDeserializer&" +
                                                
"valueDeserializer=com.sial.notifications.kafka.utilities.MessageJSONFormatter")

The problem was in the MessageJSONFormatter and I have fixed the problem. 
However, I expected that the exception be caught in Camel's kafka consumer and 
propagated to the global handler where the offset could be committed

How do I address an issue like this in the future?


Reply via email to