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

Karen Lease resolved CAMEL-18275.
---------------------------------
    Resolution: Fixed

> onCompletion tasks don't get executed in a pipeline with several SEDA queues
> ----------------------------------------------------------------------------
>
>                 Key: CAMEL-18275
>                 URL: https://issues.apache.org/jira/browse/CAMEL-18275
>             Project: Camel
>          Issue Type: Bug
>          Components: came-core
>    Affects Versions: 3.18.0
>            Reporter: Eduard Gomoliako
>            Priority: Major
>             Fix For: 3.19.0
>
>
> I stumbled upon a problem with not working {{onCompletion}} between the 
> routes that pass a message over SEDA queues.
> The route configuration is similar to this simplified version:
>  
> {code:java}
> from("direct:a")
>   .onCompletion().log("a - done").end()
>   .to("seda:b");
> from("seda:b")
>   .onCompletion().log("b - done").end()
>   .to("seda:c");
> from("seda:c")
>   .onCompletion().log("c - done").end()
>   .to("seda:d");
> from("seda:d")
>   .onCompletion().log("d - done").end()
>   .to("mock:end"); {code}
>  
> With this configuration, I get only {{"d - done"}} logging.
> I debugged the execution and noticed that the {{onCompletion}} handler from 
> "a", "b", and "c" don't get executed because they are route-scoped and get 
> attempted to be executed in the scope of the next route.
> This happens because they get handed over from the initial exchange to an 
> exchange prepared for the next route. It happens in the 
> {{SedaProducer::addToQueue}} method with {{{}copy{}}}parameter defined as 
> {{{}true{}}}, which makes the {{::prepareCopy}} method being called, which in 
> its turn calls {{ExchangeHelper.createCorrelatedCopy}} with {{handover}} 
> defined as {{{}true{}}}.
> It seems to me like a bug, because looking at the routes configuration I'd 
> expect different behavior: all the {{onCompletion}} tasks get executed 
> reporting on routes finalization. Though maybe I'm missing something here, 
> and if this is the case then I would appreciate you guys helping me to find 
> out the missing details.
> Here is a [unit test reproducing the 
> problem|https://gist.github.com/Gems/7555776feae619ac71ed8d9dd9d4d33e].



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to