Hi all,

We currently have a problem where messages that can't be read properly get
dropped instead of being put into a dlq. I have an errorHandler that works
properly when the exception is thrown from within the route (from a
processor for example), but refuses to kick in when it's a lower level error
(i.e.: Before even getting into the route).

- I'm using camel-2.0-M1
- The route is setup through the Java dsl

The route looks something like:
        errorHandler(
                deadLetterChannel(configuration.getDLQCompomentUrl()).
                maximumRedeliveries(configuration.getMaxRedeliveries()).
                log(RTSListenerRouteBuilder.class).
                retriesExhaustedLogLevel(LoggingLevel.ERROR).
                retryAttemptedLogLevel(LoggingLevel.TRACE)
        );
                
        from(configuration.getSourceComponentUrl()).
        choice().
                when(configuration.getMessageFilter()).
                        process(configuration.getMessageEnricher()).
                        to(configuration.getMessageEndpoint()).
                otherwise().
                        to(configuration.getInvalidMessageComponentUrl());

Pretty straightforward ... I've tried adding a few variants, most notable
adding a global exception handler:

onException(java.io.UTFDataFormatException.class).handled(false).to("jms.mydlq");

To no avail.

Here's the stack trace I get:
[WARN] [org.springframework.jms.listener.DefaultMessageListenerContainer]
Execution of JMS message listener failed
org.apache.camel.RuntimeCamelException: Failed to extract body due to:
javax.jms.JMSException: java.io.UTFDataFormatException. Message:
ActiveMQTextMessage {...l}
        at
org.apache.camel.component.jms.JmsBinding.extractBodyFromJms(JmsBinding.java:104)
        at
org.apache.camel.component.jms.JmsMessage.createBody(JmsMessage.java:150)
        at org.apache.camel.impl.MessageSupport.getBody(MessageSupport.java:45)
        at org.apache.camel.impl.MessageSupport.getBody(MessageSupport.java:52)
        at
org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:74)
        at
org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:52)
        at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:41)
        at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:65)
        at
org.apache.camel.component.jms.EndpointMessageListener.onMessage(EndpointMessageListener.java:72)
        at
org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:543)
        at
org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:482)
        at
org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:451)
        at
org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:323)
        at
org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:261)
        at
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:982)
        at
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:881)
        at java.lang.Thread.run(Thread.java:613)
Caused by: javax.jms.JMSException: java.io.UTFDataFormatException
        at
org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:62)
        at
org.apache.activemq.command.ActiveMQTextMessage.getText(ActiveMQTextMessage.java:91)
        at
org.apache.camel.component.jms.JmsBinding.extractBodyFromJms(JmsBinding.java:93)
        ... 16 more
Caused by: java.io.UTFDataFormatException
        at
org.apache.activemq.util.MarshallingSupport.readUTF8(MarshallingSupport.java:372)
        at
org.apache.activemq.command.ActiveMQTextMessage.getText(ActiveMQTextMessage.java:86)
        ... 17 more



Thanks for any input.
                
-- 
View this message in context: 
http://www.nabble.com/Dropped-jms-messages-on-java.io.UTFDataFormatException-tp24761350p24761350.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to