You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Douglas Fraser (Jira)" <ji...@apache.org> on 2022/08/27 15:00:00 UTC

[jira] [Created] (CAMEL-18434) JMSMessages being dropped after a EOFException/bad packet received

Douglas Fraser created CAMEL-18434:
--------------------------------------

             Summary: JMSMessages being dropped after a EOFException/bad packet received
                 Key: CAMEL-18434
                 URL: https://issues.apache.org/jira/browse/CAMEL-18434
             Project: Camel
          Issue Type: Bug
          Components: came-jms, camel-activemq
    Affects Versions: 3.18.0
         Environment: Ubuntu 20.04

Java 11

not sure of the ActiveMQ version on the producer side (5.x)

Camel 3.18.0
            Reporter: Douglas Fraser


hi, I am occasionally getting this exception when receiving data from the UK Network Rail NROD data feeds (so have no control over the broker). The bad message is one thing, but this bug report is about the Camel route's inability to recover when this happens. It is a standalone Camel app using the ActiveMQComponent to connect to NROD as the "from" and the 'to' part of the route is just a file.

After this exception happens, Wireshark shows that packets are still getting transmitted and ack'ed, but the route is broken in that the file size does not increase etc. It is like messages are getting received and processed, then dropped on the floor.

Given the "This exception is ignored" message and from what the code says, I would expect the subsequent JMSMessages to be processed and saved correctly.  I have not found any documentation etc that might explain what is going on. If I overlooked something, please let me know.

When the Camel route is within an ActiveMQ broker acting as a client, then hiccups like this do not cause the route to fail. I am debugging this as best as I can and will update with whatever I find.

 

[WARN ] 2022-08-25 18:21:36.604 [Camel (camel-1) thread #1 - JmsConsumer[TD_ALL_SIG_AREA]] DefaultReactiveExecutor - Error executing reactive work due to javax.jms.JMSException: java.io.EOFException. This exception is ignored.
org.apache.camel.RuntimeCamelException: javax.jms.JMSException: java.io.EOFException
    at org.apache.camel.component.jms.JmsBinding.extractHeadersFromJms(JmsBinding.java:208) ~[nrdata_camel.jar:?]
    at org.apache.camel.component.jms.JmsMessage.populateInitialHeaders(JmsMessage.java:244) ~[nrdata_camel.jar:?]
    at org.apache.camel.support.DefaultMessage.createHeaders(DefaultMessage.java:331) ~[nrdata_camel.jar:?]
    at org.apache.camel.support.DefaultMessage.hasHeaders(DefaultMessage.java:305) ~[nrdata_camel.jar:?]
    at org.apache.camel.component.jms.JmsMessage.copyFrom(JmsMessage.java:119) ~[nrdata_camel.jar:?]
    at org.apache.camel.support.MessageSupport.copy(MessageSupport.java:179) ~[nrdata_camel.jar:?]
    at org.apache.camel.support.AbstractExchange.copy(AbstractExchange.java:138) ~[nrdata_camel.jar:?]
    at org.apache.camel.support.DefaultExchange.copy(DefaultExchange.java:27) ~[nrdata_camel.jar:?]
    at org.apache.camel.support.ExchangeHelper.createCopy(ExchangeHelper.java:322) ~[nrdata_camel.jar:?]
    at org.apache.camel.processor.errorhandler.RedeliveryErrorHandler.defensiveCopyExchangeIfNeeded(RedeliveryErrorHandler.java:304) ~[nrdata_camel.jar:?]
    at org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$RedeliveryTask.prepare(RedeliveryErrorHandler.java:680) ~[nrdata_camel.jar:?]
    at org.apache.camel.processor.PrototypeTaskFactory.acquire(PrototypeTaskFactory.java:29) ~[nrdata_camel.jar:?]
    at org.apache.camel.processor.errorhandler.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:210) ~[nrdata_camel.jar:?]
    at org.apache.camel.impl.engine.CamelInternalProcessor.process(CamelInternalProcessor.java:399) ~[nrdata_camel.jar:?]
    at org.apache.camel.processor.Pipeline$PipelineTask.run(Pipeline.java:109) ~[nrdata_camel.jar:?]
    at org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.schedule(DefaultReactiveExecutor.java:189) [nrdata_camel.jar:?]
    at org.apache.camel.impl.engine.DefaultReactiveExecutor.scheduleMain(DefaultReactiveExecutor.java:61) [nrdata_camel.jar:?]
    at org.apache.camel.processor.Pipeline.process(Pipeline.java:184) [nrdata_camel.jar:?]
    at org.apache.camel.impl.engine.CamelInternalProcessor.process(CamelInternalProcessor.java:399) [nrdata_camel.jar:?]
    at org.apache.camel.impl.engine.DefaultAsyncProcessorAwaitManager.process(DefaultAsyncProcessorAwaitManager.java:83) [nrdata_camel.jar:?]
    at org.apache.camel.support.AsyncProcessorSupport.process(AsyncProcessorSupport.java:41) [nrdata_camel.jar:?]
    at org.apache.camel.component.jms.EndpointMessageListener.onMessage(EndpointMessageListener.java:132) [nrdata_camel.jar:?]
    at org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:736) [nrdata_camel.jar:?]
 at org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:696) [nrdata_camel.jar:?]
    at org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:674) [nrdata_camel.jar:?]
    at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:331) [nrdata_camel.jar:?]
    at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:270) [nrdata_camel.jar:?]
    at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:1237) [nrdata_camel.jar:?]
    at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:1227) [nrdata_camel.jar:?]
    at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:1120) [nrdata_camel.jar:?]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
    at java.lang.Thread.run(Thread.java:834) [?:?]
Caused by: javax.jms.JMSException: java.io.EOFException
    at org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:80) ~[nrdata_camel.jar:?]
    at org.apache.activemq.command.ActiveMQMessage.getPropertyNames(ActiveMQMessage.java:331) ~[nrdata_camel.jar:?]
    at org.apache.camel.component.jms.JmsBinding.extractHeadersFromJms(JmsBinding.java:206) ~[nrdata_camel.jar:?]
    ... 32 more
Caused by: java.io.EOFException
    at java.io.DataInputStream.readUnsignedShort(DataInputStream.java:345) ~[?:?]
    at java.io.DataInputStream.readUTF(DataInputStream.java:594) ~[?:?]
    at java.io.DataInputStream.readUTF(DataInputStream.java:569) ~[?:?]
    at org.apache.activemq.util.MarshallingSupport.unmarshalPrimitiveMap(MarshallingSupport.java:97) ~[nrdata_camel.jar:?]
    at org.apache.activemq.util.MarshallingSupport.unmarshalPrimitiveMap(MarshallingSupport.java:78) ~[nrdata_camel.jar:?]
    at org.apache.activemq.util.MarshallingSupport.unmarshalPrimitiveMap(MarshallingSupport.java:70) ~[nrdata_camel.jar:?]
    at org.apache.activemq.command.Message.unmarsallProperties(Message.java:244) ~[nrdata_camel.jar:?]
    at org.apache.activemq.command.Message.getProperties(Message.java:210) ~[nrdata_camel.jar:?]
    at org.apache.activemq.command.ActiveMQMessage.getPropertyNames(ActiveMQMessage.java:316) ~[nrdata_camel.jar:?]
    at org.apache.camel.component.jms.JmsBinding.extractHeadersFromJms(JmsBinding.java:206) ~[nrdata_camel.jar:?]
    ... 32 more

 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)