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/29 08:10:00 UTC

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

     [ https://issues.apache.org/jira/browse/CAMEL-18434?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Douglas Fraser closed CAMEL-18434.
----------------------------------
    Fix Version/s: 3.18.1
       Resolution: Resolved

> 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
>            Priority: Major
>             Fix For: 3.18.1
>
>
> 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)