[ 
https://issues.apache.org/activemq/browse/CAMEL-794?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=44992#action_44992
 ] 

Bela Vizy commented on CAMEL-794:
---------------------------------

So far this is what I see: 

The thread processor wraps everything following into a pipeline. One problem is 
that the "children" (the members of the pipeline) don't inherit the the 
settings for the Error Channel. Since the ErrorHandlerBulder is null it falls 
back to the default (6 re-tries, DLC). This probably can be corrected at 
ProcessorType.java:1610 by copying the ErrorHandlerBuilder of the parent.

But there is another problem. If we bomb in one of the members of the pipeline 
after the thread processor, the error handling will be executed two times: once 
for the member (that would be the desirable behavior) and once for the whole 
pipeline. Camel actually re-delivers the exchange to the first member after the 
thread(). 

Well that is it so far.  Let me know if you want me to keep poking...



> Pipeline with thread() processor also redelivers following the default policy 
> independently from the preset  errorhadling 
> --------------------------------------------------------------------------------------------------------------------------
>
>                 Key: CAMEL-794
>                 URL: https://issues.apache.org/activemq/browse/CAMEL-794
>             Project: Apache Camel
>          Issue Type: Bug
>          Components: camel-core
>    Affects Versions: 1.4.0
>            Reporter: Bela Vizy
>             Fix For: 1.5.0
>
>
> When using the thread processor in a simple pipeline, the exchange will be 
> redelivered 6 times (default policy) along with the preset errorhandler 
> settings. The code below will re-deliver 6 times to the default 
> DeadLetterChannel and once to the log:errorTester.
>       
> errorHandler(deadLetterChannel("log:errorTester?level=ERROR").maximumRedeliveries(1));
>               
>       from("seda:whatEver")
>         .thread(2)
>               .process(new Processor() {
>                       public void process(Exchange exchange) throws Exception 
> {
>                               System.out.println("### Exchg : " + 
> exchange.getExchangeId());
>                               throw new Exception("Kaboom 2!");
>                       }
>         });

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