MF created CAMEL-6793:
-------------------------

             Summary: Camel 2.12 shows unexpected warning "Cannot determine 
current route from Exchange"
                 Key: CAMEL-6793
                 URL: https://issues.apache.org/jira/browse/CAMEL-6793
             Project: Camel
          Issue Type: Bug
    Affects Versions: 2.12.1
         Environment: Windows
            Reporter: MF


Since upgrading from 2.10.6 to 2.12.1 Camel logs the following warning:
{code}
18:47:10,278 [WARN ] DefaultErrorHandler       - Cannot determine current route 
from Exchange with id: ID-xyz-0-12, will fallback and use first error handler.
{code}

It looks like the "splitter" is causing the problem. If the "<split>" is 
disabled in the route, then the warning disappears!

Here's the example route for reproduction:
{code}
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans";
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
       xsi:schemaLocation="http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans.xsd
               http://camel.apache.org/schema/spring 
http://camel.apache.org/schema/spring/camel-spring.xsd";>

        <import resource="classpath:META-INF/cxf/cxf.xml"/>

        <!-- custom exceptions -->
        <bean id="demoIllegalStateException" 
class="java.lang.IllegalStateException">
                <constructor-arg index="0" value="Forced Exception" 
type="java.lang.String"/>
        </bean>

        <!-- this is the camel route which proxy the web service and forward it 
to the real web service -->
        <camelContext id="camelCtx" 
xmlns="http://camel.apache.org/schema/spring"; 
errorHandlerRef="defaultErrorHandler" trace="false"
                      messageHistory="true">

                <errorHandler id="defaultErrorHandler" 
type="DefaultErrorHandler">
                        <redeliveryPolicy logExhausted="true"/>
                </errorHandler>

                <errorHandler id="noErrorHandler" type="NoErrorHandler"/>

                <endpoint id="myTimer" uri="timer://myTimer?period=5s"/>
                <route id="Start" autoStartup="true" trace="false" 
errorHandlerRef="defaultErrorHandler"
                       startupOrder="900">
                        <from uri="ref:myTimer"/>
                        <setBody>
                                <simple>Some Test Message</simple>
                        </setBody>
                        <to uri="direct:Process"/>
                </route>

                <route id="Process" autoStartup="true" trace="false" 
errorHandlerRef="defaultErrorHandler"
                       startupOrder="800">
                        <from uri="direct:Process"/>

                        <onException>
                                
<exception>java.lang.ArithmeticException</exception>
                                <handled>
                                        <constant>true</constant>
                                </handled>
                                <to uri="direct:HandleException"/>
                        </onException>

                        <!-- now delegate the processing of the body with all 
the selected transfers -->
                        <to uri="direct:Process2"/>
                </route>


                <route id="Process2" autoStartup="true" trace="false" 
errorHandlerRef="defaultErrorHandler"
                       startupOrder="30">
                        <from uri="direct:Process2"/>

                        <onException>
                                
<exception>java.lang.IllegalStateException</exception>
                                <handled>
                                        <constant>true</constant>
                                </handled>
                                <to uri="direct:HandleException"/>
                        </onException>

                        <split stopOnException="true" streaming="false" 
parallelProcessing="false">
                                <simple>${body}</simple>

                                <throwException 
ref="demoIllegalStateException"/>
                        </split>
                </route>

                <route id="HandleException" autoStartup="true" trace="false"
                       errorHandlerRef="noErrorHandler"
                       startupOrder="13">
                        <from uri="direct:HandleException"/>

                        <log loggingLevel="INFO" 
message="[${property.LogPrefix}] EXCEPTION message: ${exception}"/>
                        <log loggingLevel="DEBUG" 
message="[${property.LogPrefix}] EXCEPTION stacktrace: 
${exception.stacktrace}"/>
                        <stop/>
                </route>
        </camelContext>
</beans>
{code}

Is it a bug or do I have to configure something new? 2.10.6 and previous 
versions did not show this kind of behavior (meaning: did not log this warning)!

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to