servicemix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jean-Baptiste Onofré (JIRA) <j...@apache.org>
Subject [jira] Updated: (SMXCOMP-599) <onException> Tag leaves container hanging in conjunction with servicemix-camel and servicemix-jms
Date Sun, 06 Feb 2011 09:51:33 GMT

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

Jean-Baptiste Onofré updated SMXCOMP-599:
-----------------------------------------

    Fix Version/s:     (was: 2011.01)
                   2011.02

> <onException> Tag leaves container hanging in conjunction with servicemix-camel
and servicemix-jms
> --------------------------------------------------------------------------------------------------
>
>                 Key: SMXCOMP-599
>                 URL: https://issues.apache.org/jira/browse/SMXCOMP-599
>             Project: ServiceMix Components
>          Issue Type: Bug
>          Components: servicemix-camel
>    Affects Versions: servicemix-camel-2008.01, servicemix-camel-2009.01, servicemix-camel-2009.02,
servicemix-jms-2008.01
>         Environment: Especially out of the box installation of ServiceMix 3.3 using several
servicemix-camel-installer
>            Reporter: Christoph Meise
>             Fix For: 2011.02
>
>         Attachments: patch-test-smxcomp599.txt, reproduce-deadlock.jar
>
>
> The <onException> tag does not work as expected. Using this spring definition within
a camel service unit:
>     <spring:bean id="exceptionThrower" class="de.cme.bug.report.ExceptionThrower"/>
> 	<camelContext id="reproduce-deadlock-context">
>  		<endpoint id="consumer-messages" uri="jbi:endpoint:http://www.cme.de/consumerMessages/endpoint"
/>
>  		<endpoint id="provider-failed-messages" uri="jbi:endpoint:http://www.cme.de/producerErrorData/endpoint"
/>
> 		<route>
> 			<from ref="consumer-messages"/>
> 			<bean ref="exceptionThrower"/>
> 			<to uri="log:success.logger"/>
> 			
> 			<onException>
>  			 	<exception>java.lang.Exception</exception>
> 				<handled> 
> 					<constant>true</constant> 
> 				</handled> 
> 			 	<to ref="provider-failed-messages"/>
> 			</onException>
> 			
> 		</route>
> 	</camelContext>
> Incoming messages can be provided using servicemix-jms means and in an exception the
message should be forwarded to a jms provider. The ExceptionThrower - as it says - allows
throws an IOException. Now if an Exception occurs like:
> ERROR - DeadLetterChannel              - Failed delivery for exchangeId: ID-isdeblnws324/3179-1248190130315/0-0.
On delivery attempt: 0 caught: java.io.IOExcept
> ion
> java.io.IOException
>         at de.cme.bug.report.ExceptionThrower.process(ExceptionThrower.java:10)
>         at org.apache.camel.component.bean.BeanProcessor.process(BeanProcessor.java:80)
>         at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:80)
>         at org.apache.camel.processor.DeadLetterChannel.process(DeadLetterChannel.java:189)
>         at org.apache.camel.processor.DeadLetterChannel.process(DeadLetterChannel.java:133)
>         at org.apache.camel.processor.Pipeline.process(Pipeline.java:115)
>         .
>         . more stacktrace
>         .
> ERROR - DeadLetterChannel              - Failed delivery for exchangeId: ID-isdeblnws324/3179-1248190130315/0-0.
Handled by the failure processor: sendTo(Endpoi
> nt[endpoint:http://www.cme.de/producerErrorData/endpoint])
> I can see the <onException> definition doing the handling. But having had one Exception
handled, no more messages will be consumed later on. Getting a thread dump I don't see any
blocked threads. Also the effect is not depending on the type of flow (seda or jms).
> I can provide a sample service assembly allowing reproduction of this behaviour if needed.
I would attach it to this issues if I knew how. Right now I circumvent the issue using the
try/catch construct, but I'd rather have an asynchronous error handling provided by the onException
handler.

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

       

Mime
View raw message