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

Claus Ibsen updated CAMEL-1188:
-------------------------------

    Description: 
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}

  was:
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?

<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>


> 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.

Reply via email to