On Tue, Mar 9, 2010 at 10:19 PM, Muhammad Ichsan <[email protected]> wrote:
> Dear all
>
> I have a route which is called by <loop> like the following:
>
> <route>
>        <from uri="direct:repeatReversal" />
>        <to uri="bean:messageUtil?method=markRepeatRequired" />
>        <loop>
>                <method bean="messageUtil" method="readNumberOfRepeat" />
>                <to uri="direct:invoke" />
>        </loop>
>        <to uri="bean:messageUtil?method=printMsg" />
> </route>
>
> <route>
>        <from uri="direct:invoke" />
>
>        <onException>
>                <exception>my.Exception</exception>
>                <handled><constant>true</constant></handled>
>                <to uri="bean:messageUtil?method=markRepeatRequired" />
>        </onException>
>
>        <delay>
>                <constant>5000</constant>
>        </delay>
>
>        <choice>
>                <when>
>                        <simple>${in.header.repeat} != null</simple>
>                        <to 
> uri="bean:aBusinessBean?method=invokeWithPossibleMyException" />
>                        <to 
> uri="bean:messageUtil?method=unmarkRepeatRequired"/>
>                </when>
>        </choice>
>        <to uri="bean:messageUtil?method=printMsg" />
> </route>
>
> The problem is, once a MyException arise, the loop stop completely.
> How this happened?
>

onException does *not* work like try .. catch as in regular Java.

You can use doTry .. doCatch for this kind of behavior.

However we have a ticket to consider adding an option to onExeption to
let it "keep running".
https://issues.apache.org/activemq/browse/CAMEL-2253




> Regards
>
> --
> ~The best men are men who benefit to others
> http://michsan.web.id
>
> Yang berkualitas memang beda rasanya!
> http://rizqi-cookies.com
>



-- 
Claus Ibsen
Apache Camel Committer

Author of Camel in Action: http://www.manning.com/ibsen/
Open Source Integration: http://fusesource.com
Blog: http://davsclaus.blogspot.com/
Twitter: http://twitter.com/davsclaus

Reply via email to