You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Claus Ibsen (Jira)" <ji...@apache.org> on 2026/10/08 20:05:00 UTC

[jira] [Updated] (CAMEL-25420) camel-core - routeConfiguration onCompletion: YAML/XML DSL parity gap (configurationId dedup does not apply)

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

Claus Ibsen updated CAMEL-25420:
--------------------------------
    Fix Version/s: 4.24.0
                       (was: 4.23.0)

> camel-core - routeConfiguration onCompletion: YAML/XML DSL parity gap (configurationId dedup does not apply)
> ------------------------------------------------------------------------------------------------------------
>
>                 Key: CAMEL-25420
>                 URL: https://issues.apache.org/jira/browse/CAMEL-25420
>             Project: Camel
>          Issue Type: Improvement
>            Reporter: Guillaume Nodet
>            Priority: Major
>             Fix For: 4.24.0
>
>
> In the fix for CAMEL-25135, the configurationId-based dedup and the conditional {{routeScoped}} logic for named route configurations are gated on the fluent {{RouteConfigurationDefinition.onCompletion()}} method, which sets the {{routeConfiguration}} back-reference on each {{OnCompletionDefinition}}.
> YAML and XML route configurations bypass this method entirely: they call {{setOnCompletions()}} directly (via {{RouteConfigurationDefinitionDeserializer}} for YAML, and {{ModelParser}} / JAXB binding for XML/Spring). As a result:
> - {{onCompletion}} definitions created via YAML or XML never receive the {{routeConfiguration}} back-reference.
> - The conditional {{routeScoped}} logic added in CAMEL-25135 does not apply to them.
> - The {{OnCompletionReifier}} configurationId-based dedup does not fire for YAML/XML-defined route configurations.
> This means named route configurations defined in YAML or XML can still fire multiple times per exchange when multiple opted-in routes are traversed (the exact bug fixed in CAMEL-25135 for the Java DSL).
> A DSL-agnostic fix would be to apply the {{routeScoped}} and dedup logic at the merge point where route configurations are applied to routes (e.g. {{RouteDefinitionHelper.getRouteConfigurationDefinitionConsumer()}} used by both {{RoutesDefinition.prepareRoute()}} and {{AbstractCamelContextFactoryBean}}), or in a runtime check inside {{OnCompletionProcessor}} that does not rely on the back-reference.
> Tracked here as a follow-up to keep CAMEL-25135 focused. See PR #27430 for the Java DSL fix and the review discussion that identified this gap.



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