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

Claus Ibsen reassigned CAMEL-23988:
-----------------------------------

    Assignee: Claus Ibsen

> camel-yaml-dsl - nested-map endpoint parameters (multiValue, CAMEL-22486) 
> produce a corrupt URI unless the endpoint URI is scheme-only
> --------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: CAMEL-23988
>                 URL: https://issues.apache.org/jira/browse/CAMEL-23988
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-yaml-dsl
>    Affects Versions: 4.21.0
>            Reporter: Federico Mariani
>            Assignee: Claus Ibsen
>            Priority: Minor
>
> CAMEL-22486 ({{c79eea752fc9}}) made {{YamlDeserializerSupport.asScalarMap()}} 
> accept nested MAPPING values so multiValue endpoint options can be written as 
> YAML maps. However, in {{YamlSupport.creteEndpointUri}} 
> ({{dsl/camel-yaml-dsl/camel-yaml-dsl-common/.../YamlSupport.java:105-125}}) 
> only the {{scheme.equals(uri)}} branch delegates to {{factory.buildUri()}}, 
> which correctly flattens Map values via the multiValue prefixes. The other 
> two branches — URI with a path (lines 110-122) and no-factory (line 125) — 
> pass the map straight to {{URISupport.createQueryString}}, which handles List 
> but stringifies Map values with {{toString()}}.
> Failure scenario:
> {code:yaml}
> uri: "jetty:http://0.0.0.0:8080/x";
> parameters:
>   filterInitParameters:
>     a: 1
>     b: 2
> {code}
> produces {{...?filterInitParameters={a=1, b=2}}} — a silently broken endpoint 
> URI instead of {{filter.a=1&filter.b=2}} (or an error).
> Note the RAW-secret wrapping in lines 112-120 already duplicates part of 
> {{EndpointUriFactorySupport.buildQueryParameters}} and has drifted by exactly 
> this missing flattening step — consolidating on the factory path where 
> possible would prevent further drift. Related inconsistency: 
> {{YamlSupport.creteEndpointUri(String, Node)}} (scheme-keyed endpoint form, 
> lines 210-219) still rejects non-scalar parameter values, so the map syntax 
> works under {{uri:}}/{{parameters:}} but not in the compact scheme-keyed form.
> _Filed by Claude Code on behalf of Croway._



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

Reply via email to