camel-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Claus Ibsen (JIRA)" <j...@apache.org>
Subject [jira] Commented: (CAMEL-1188) Exceptions thrown from when - methodCall are not caught by onException
Date Tue, 16 Dec 2008 18:35:05 GMT

    [ https://issues.apache.org/activemq/browse/CAMEL-1188?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=48210#action_48210
] 

Claus Ibsen commented on CAMEL-1188:
------------------------------------

Ah I got it. This is already fixed in Camel 1.5.1

When you use bean for predicates and they throw an exception it's wrapped in a RuntimeBeanExpressionException.
And sadly Camel 1.5.0 does not look into the exception tree to find the real caused exception.

Rikard you can try the 1.5.1-SNAPSHOT
http://activemq.apache.org/camel/download.html

> Exceptions thrown from when - methodCall are not caught by onException
> ----------------------------------------------------------------------
>
>                 Key: CAMEL-1188
>                 URL: https://issues.apache.org/activemq/browse/CAMEL-1188
>             Project: Apache Camel
>          Issue Type: Bug
>          Components: camel-core, camel-spring
>    Affects Versions: 1.5.0
>            Reporter: Rikard Eriksen
>            Assignee: Claus Ibsen
>             Fix For: 1.5.1, 2.0.0
>
>
> See the route below. beanOne throws ExceptionOneException and beanTwo throws ExceptionTwoException.
ExceptionOneException it caught and handled as it's supposed to.  But ExceptionTwoException
goes all the way through, without  being caught and routed to the exceptionTwoQueue. Is it
the when tag or the methodCall tag that is the cause of this?
> {code}
> <camelContext id="MyCamelContext xmlns="http://activemq.apache.org/camel/schema/spring">
> 	<endpoint id="myMainQueue" uri="activemq:${my.project.queue.main}"/>
> 	<endpoint id="exceptionOneQueue" uri="activemq:${my.project.queue.exceptionOne}"/>
> 	<endpoint id="exceptionTwoQueue" uri="activemq:${my.project.queue.exceptionTwo}"/>
> 	<route>		
> 		<from ref="myMainQueue" />
> 		<onException>
> 			<exception>my.project.queue.ExceptionOneException</exception>
> 			<redeliveryPolicy maximumRedeliveries="0" />
> 			<handled>
> 				<constant>true</constant>
> 			</handled>
> 			<to ref="exceptionOneQueue"/>
> 		</onException>
> 		<onException>
> 			<exception>my.project.queue.ExceptionTwoException</exception>
> 			<redeliveryPolicy maximumRedeliveries="0" />
> 			<handled>
> 				<constant>true</constant>
> 			</handled>
> 			<to ref="exceptionTwoQueue"/>
> 		</onException>
> 		<onException>
> 			<exception>java.lang.Exception</exception>
> 			<redeliveryPolicy maximumRedeliveries="0" />
> 			<handled>
> 				<constant>false</constant>
> 			</handled>
> 		</onException>
> 		<unmarshal>
> 			<jaxb prettyPrint="true" contextPath="my.project.domain" />
> 		</unmarshal>
> 		<choice>
> 			<when>
> 				<methodCall bean="beanTwo" method="methodFromBeanTwo"/>
> 			</when>
> 			<otherwise>
> 				<to uri="bean:beanOne?methodName=methodFromBeanOne" />
> 			</otherwise>
> 		</choice>
> 	</route>
> </camelContext>
> {code}

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message