camel-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Gijsbert van den Brink (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (CAMEL-10360) IllegalStateException when mina buffer contains duplicate MLLP end bytes
Date Thu, 29 Dec 2016 15:55:58 GMT

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

Gijsbert van den Brink updated CAMEL-10360:
-------------------------------------------
    Affects Version/s: 2.18.1

> IllegalStateException when mina buffer contains duplicate MLLP end bytes
> ------------------------------------------------------------------------
>
>                 Key: CAMEL-10360
>                 URL: https://issues.apache.org/jira/browse/CAMEL-10360
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-hl7
>    Affects Versions: 2.17.3, 2.18.1
>            Reporter: Gijsbert van den Brink
>            Priority: Minor
>         Attachments: CAMEL10360Test.java
>
>
> We're occasionally seeing the following Mina exception on our production environment:
"IllegalStateException: doDecode() can't return true when buffer is not consumed." (full stack
trace below)
> I haven't been able to reproduce the issue, and I don't fully understand the problem,
but I think it's caused by duplicate messages (or specifically duplicate end byte markers)
in the Mina IoBuffer that is read by Camel's HL7MLLPDecoder.
> Full stack trace (with truncated hex dump):
> org.apache.camel.CamelExchangeException: Error occurred in ResponseHandler. Exchange[ID-prdvpn01-zd-messaging-37296-1475153396916-0-335909].
Caused by: [org.apache.mina.filter.codec.ProtocolDecoderException - java.lang.IllegalStateException:
doDecode() can't return true when buffer is not consumed. (Hexdump: 0B 4D 53 48 ... 0D 1C
0D 0B 4D 53 48 ... 0D 1C 0D)]
> 	at org.apache.camel.component.mina2.Mina2Producer.doProcess(Mina2Producer.java:178)
> 	at org.apache.camel.component.mina2.Mina2Producer.process(Mina2Producer.java:116)
> 	at org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:61)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:468)
> 	at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:197)
> 	at org.apache.camel.processor.MulticastProcessor.doProcessSequential(MulticastProcessor.java:681)
> 	at org.apache.camel.processor.MulticastProcessor.doProcessSequential(MulticastProcessor.java:609)
> 	at org.apache.camel.processor.MulticastProcessor.process(MulticastProcessor.java:238)
> 	at org.apache.camel.processor.RecipientList.sendToRecipientList(RecipientList.java:170)
> 	at org.apache.camel.processor.RecipientList.process(RecipientList.java:131)
> 	at org.apache.camel.processor.Pipeline.process(Pipeline.java:121)
> 	at org.apache.camel.processor.Pipeline.process(Pipeline.java:83)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:468)
> 	at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:197)
> 	at org.apache.camel.processor.Pipeline.process(Pipeline.java:121)
> 	at org.apache.camel.processor.Pipeline.process(Pipeline.java:83)
> 	at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:197)
> 	at org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:62)
> 	at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:145)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:468)
> 	at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:197)
> 	at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:197)
> 	at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:109)
> 	at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:91)
> 	at org.apache.camel.component.jms.EndpointMessageListener.onMessage(EndpointMessageListener.java:112)
> 	at org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:721)
> 	at org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:681)
> 	at org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:651)
> 	at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:315)
> 	at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:233)
> 	at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:1158)
> 	at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:1150)
> 	at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:1047)
> 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> 	at java.lang.Thread.run(Thread.java:745)
> Caused by: org.apache.mina.filter.codec.ProtocolDecoderException: java.lang.IllegalStateException:
doDecode() can't return true when buffer is not consumed. (Hexdump: 0B 4D 53 48 ... 0D 1C
0D 0B 4D 53 48 ... 0D 1C 0D)
> 	at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:240)
> 	at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:542)
> 	at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1300(DefaultIoFilterChain.java:48)
> 	at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:947)
> 	at org.apache.mina.core.filterchain.IoFilterEvent.fire(IoFilterEvent.java:74)
> 	at org.apache.mina.core.session.IoEvent.run(IoEvent.java:63)
> 	at org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.runTask(OrderedThreadPoolExecutor.java:770)
> 	at org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.runTasks(OrderedThreadPoolExecutor.java:762)
> 	at org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.run(OrderedThreadPoolExecutor.java:704)
> 	... 1 common frames omitted
> Caused by: java.lang.IllegalStateException: doDecode() can't return true when buffer
is not consumed.
> 	at org.apache.mina.filter.codec.CumulativeProtocolDecoder.decode(CumulativeProtocolDecoder.java:184)
> 	at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:231)
> 	... 9 common frames omitted



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message