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

Willem Jiang edited comment on CAMEL-7973 at 10/30/14 8:28 AM:
---------------------------------------------------------------

Hi,Claus.  
Yes, we cannot just call the process method there. I'm working on it to add the 
async processing code :)



was (Author: njiang):
Hi,Claus.  
Yes, we cannot just call the process method there. I'm work on it :)


> CircuitBreakerLoadBalancer fails on async processors
> ----------------------------------------------------
>
>                 Key: CAMEL-7973
>                 URL: https://issues.apache.org/jira/browse/CAMEL-7973
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-core
>    Affects Versions: 2.14.0
>            Reporter: Matteo Pavesi
>            Assignee: Willem Jiang
>            Priority: Minor
>         Attachments: 
> 0001-CAMEL-7973-added-failing-test-for-circuit-breaker-wi.patch, 
> 0002-CAMEL-7973-fix-circuit-breaker-with-async-processors.patch
>
>
> The CircuitBreakerLoadBalancer works fine on direct synchronous processor, 
> but it seems to not behave as expected in case of async processor.
> To reproduce the error, it's enough to add a .threads(1) before the mock 
> processor in the CircuitBreakerLoadBalancerTest routeBuilder configuration.
> This misbehaviour seems to be related to the use of the 
> AsyncProcessorConverterHelper to force any processor to behave like 
> asynchronous. 
> I'm going to propose a patch with the failing test and a proposal of solution.
> EDIT:
> the patch contains the fix also to other unexpected behaviour of the 
> CircuitBreaker.
> The second problem addressed is that, after the opening of the circuit, the 
> RejectedExecutionException raised by the circuit breaker is set in the 
> Exchange, but it doesn't return. This cause the processor will receive the 
> Exchange even if the circuit is open. In this case also, if the 
> CircuitBreaker is instructed to react only to specific Exception, it will 
> close the circuit after the following request, because the raised exception 
> would be a RejectedExecutionException instead of the one specified in the 
> configuration.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to