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

MF updated CAMEL-6793:
----------------------

    Description: 
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";>

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

  was:
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)!

    
> 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";>
>       <!-- 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