[
https://issues.apache.org/jira/browse/CAMEL-24449?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Claus Ibsen resolved CAMEL-24449.
---------------------------------
Resolution: Fixed
> camel-core - saga coordinator is selected from the unprefixed
> Long-Running-Action message header
> ------------------------------------------------------------------------------------------------
>
> Key: CAMEL-24449
> URL: https://issues.apache.org/jira/browse/CAMEL-24449
> Project: Camel
> Issue Type: Bug
> Components: camel-core
> Reporter: Andrea Cosentino
> Assignee: Andrea Cosentino
> Priority: Major
> Fix For: 4.23.0
>
>
> {{SagaProcessor.getCurrentSagaCoordinator()}} prefers the internal
> exchange-extension state, but falls back to the {{Long-Running-Action}}
> message header ({{Exchange.SAGA_LONG_RUNNING_ACTION}}) "for LRA
> interoperability". The fallback is honoured even under the default
> {{InMemorySagaService}}, where no LRA interoperability exists.
> The constant is outside the {{Camel}} namespace, so the default
> {{HeaderFilterStrategy}} of every consumer passes it through untouched, and
> the saga id is written back onto responses by design - which is how a caller
> comes to know a live saga id in the first place.
> The effect is that a message can select which saga coordinator its exchange
> joins. In AUTO completion mode that reaches {{complete()}}/{{compensate()}}
> of saga state the sender's own exchange did not create.
> Proposal: only consult the header when an LRA-capable saga service is in use,
> and consider a {{Camel}}-prefixed spelling with the current name kept for LRA
> interoperability behind an explicit option. Needs an upgrade-guide entry.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)