Hi

Really weird. We have unit tests running for ages in camel-spring testing this.
But today they started failing after upgrading junit recently.

Anyway I tracked down the issue with setting the global error handler
and will fix it in short time.



On Thu, Sep 3, 2009 at 2:55 PM, Claus Ibsen <[email protected]> wrote:
> Hi
>
> Is this still an issue for you? I am super bust and havent got time to
> drill down.
> As we got many error handling and global / route based tests I would
> be surprised if something was wrong in camel.
>
>
>
> On Wed, Aug 26, 2009 at 12:18 PM, Bach
> Christian<[email protected]> wrote:
>> Sure, I really appreciate your help.
>>
>> I had to take some (more or less sensitive :) ) snippets out, but this is 
>> essentially what it looks like :
>>
>> <?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-2.5.xsd
>>        http://camel.apache.org/schema/spring 
>> http://camel.apache.org/schema/spring/camel-spring.xsd";>
>>
>>        <camelContext id="camel" 
>> xmlns="http://camel.apache.org/schema/spring"; 
>> errorHandlerRef="deadLetterErrorHandler">
>>
>>                <route>
>>                        <from
>>                                uri="........" />
>>                        <choice>
>>                                <when>
>>                                        ......
>>                                </when>
>>                                <when>
>>                                        ......
>>                                </when>
>>                                <otherwise>
>>                                        <!-- status messages go to direct:out 
>> straight -->
>>                                        <to uri="direct:out" />
>>                                </otherwise>
>>                        </choice>
>>                </route>
>>
>>                <route>
>>                        <from uri="seda:fairValuePricePipeline" />
>>                        <to uri="bean:fairValuePriceMessageValidator" />
>>                        <choice>
>>                                <when>
>>                                        ......
>>                                </when>
>>                                <otherwise>
>>                                        <to 
>> uri="direct:fallbackPriceSelector" />
>>                                </otherwise>
>>                        </choice>
>>                </route>
>>
>>                <route errorHandlerRef="deadLetterErrorHandler">
>>                        <from uri="seda:bondfloorPricePipeline" />
>>                        <to uri="bean:bondfloorPriceMessageValidator" />
>>                        <choice>
>>                                <when>
>>                                        ......
>>                                </when>
>>                                <otherwise>
>>                                        <to 
>> uri="direct:fallbackPriceSelector" />
>>                                </otherwise>
>>                        </choice>
>>                </route>
>>
>>                <route>
>>                        <from uri="direct:fallbackPriceSelector" />
>>                        <to uri="bean:fallbackPriceSelector" />
>>                        <to uri="direct:out" />
>>                </route>
>>
>>                <route>
>>                        <from uri="seda:deadletterQueue" />
>>                        <to uri="direct:out" />
>>                </route>
>>
>>                <route>
>>                        <from uri="direct:out" />
>>                        <to uri="........." />
>>                </route>
>>
>>        </camelContext>
>>
>>        <bean id="deadLetterErrorHandler" 
>> class="org.apache.camel.builder.DeadLetterChannelBuilder">
>>                <property name="deadLetterUri" value="seda:deadletterQueue"/>
>>                <property name="handled" value="false" />
>>        </bean>
>>
>>        ..........      some processor beans ........
>>
>>
>>        <bean id="propertyConfigurer" 
>> class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
>>                <property name="searchSystemEnvironment" value="true" />
>>        </bean>
>>
>>        <bean id="log4jInitialization" 
>> class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
>>                <property name="targetClass" 
>> value="org.springframework.util.Log4jConfigurer" />
>>                <property name="targetMethod" value="initLogging" />
>>                <property name="arguments">
>>                        <list>
>>                                
>> <value>${SOME_HOME}/etc/config/log4j/log4j.properties</value>
>>                        </list>
>>                </property>
>>        </bean>
>> </beans>
>>
>> I end up having a DeadLetterChannel error handler in the 
>> seda:bondfloorPricePipeline (the one which has set the error handler at 
>> route level) and the DefaultErrorHandler anywhere else, which is not what we 
>> would expect, right ? (The routes themselves are working nicely without 
>> error handling configured.)
>>
>> Thank you, Christian.
>>
>> -----Original Message-----
>> From: Claus Ibsen [mailto:[email protected]]
>> Sent: Mittwoch, 26. August 2009 11:18
>> To: [email protected]
>> Subject: Re: Global Error Handler Question.
>>
>> Hi
>>
>> It should really work as we got a ton of unit tests in relation to
>> error handling.
>>
>> Could you post your spring xml file with the camel context and routes
>> that you cannot get working?
>>
>>
>> On Wed, Aug 26, 2009 at 11:02 AM, Bach
>> Christian<[email protected]> wrote:
>>> Heya guys
>>>
>>> I am trying to install a global error handler by setting :
>>>
>>> <camelContext id="camel" xmlns="http://camel.apache.org/schema/spring";
>>> errorHandlerRef="deadLetterErrorHandler">
>>>
>>> in the camelContext, according to
>>> http://camel.apache.org/error-handler.html the error handler is expected
>>> to be inherited and being applicable in all the routes, ya ?
>>>
>>> But it is not, when inspecting stack traces I see the
>>> DefaultErrorHandler still being applied in all my routes. When
>>> configuring individual routes, like:
>>>
>>> <route errorHandlerRef="deadLetterErrorHandler">
>>>
>>> things are working nicely and my stack traces for the particular route
>>> do have the DeadLetterChannel installed.
>>>
>>> I must be doing something wrong in my attempt of globally configuring
>>> matter. The Camel version used is 2.0.0 and the deadLetterErrorHandler
>>> is configured like this:
>>>
>>> <bean id="deadLetterErrorHandler"
>>> class="org.apache.camel.builder.DeadLetterChannelBuilder">
>>>        <property name="deadLetterUri" value="seda:deadletterQueue"/>
>>>        <property name="handled" value="false" />
>>> </bean>
>>>
>>> Any help appreciated, thx, Christian.
>>>
>>> This message is for the named person's use only. It may contain 
>>> confidential, proprietary or legally privileged information. If you receive 
>>> this message in error, please notify the sender urgently and then 
>>> immediately delete the message and any copies of it from your system. 
>>> Please also immediately destroy any hardcopies of the message.
>>> The sender's company reserves the right to monitor all e-mail 
>>> communications through their networks.
>>>
>>
>>
>>
>> --
>> Claus Ibsen
>> Apache Camel Committer
>>
>> Open Source Integration: http://fusesource.com
>> Blog: http://davsclaus.blogspot.com/
>> Twitter: http://twitter.com/davsclaus
>>
>
>
>
> --
> Claus Ibsen
> Apache Camel Committer
>
> Open Source Integration: http://fusesource.com
> Blog: http://davsclaus.blogspot.com/
> Twitter: http://twitter.com/davsclaus
>



-- 
Claus Ibsen
Apache Camel Committer

Open Source Integration: http://fusesource.com
Blog: http://davsclaus.blogspot.com/
Twitter: http://twitter.com/davsclaus

Reply via email to