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

Claus Ibsen reassigned CAMEL-23989:
-----------------------------------

    Assignee: Claus Ibsen

> camel-yaml-dsl - YamlDeserializerSupport.nodeAt() matches later pointer 
> segments at the wrong depth instead of returning null
> -----------------------------------------------------------------------------------------------------------------------------
>
>                 Key: CAMEL-23989
>                 URL: https://issues.apache.org/jira/browse/CAMEL-23989
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-yaml-dsl
>    Affects Versions: 4.21.0
>            Reporter: Federico Mariani
>            Assignee: Claus Ibsen
>            Priority: Minor
>
> In {{YamlDeserializerSupport.nodeAt}} 
> ({{dsl/camel-yaml-dsl/camel-yaml-dsl-common/.../YamlDeserializerSupport.java:414-435}})
>  the outer loop over {{pointer.split("/")}} continues to the next segment 
> when a segment is not found, so it keeps scanning the *same* mapping node for 
> *deeper* segment names, and the remainder computation 
> {{pointer.substring(path.length() + 1)}} is only correct for the first 
> segment.
> Failure scenario: {{nodeAt(root, "/spec/template")}} on a document with no 
> {{spec}} key but a top-level {{template}} key: the loop falls through to 
> {{path = "template"}}, matches the root-level {{template}}, computes {{next = 
> "plate"}} and recurses into it — returning a wrong node, or throwing 
> {{InvalidNodeTypeException}} from {{asMappingNode()}} when the value is a 
> scalar, instead of returning null as the contract implies. Any 
> malformed/partial Kamelet or Pipe document can trigger this via 
> {{KameletRoutesBuilderLoader}}/{{YamlRoutesBuilderLoader}}.
> Important for the fix: the leading-{{/}} pointers used by the loaders only 
> work *because* of this fallthrough (the empty first segment never matches), 
> so empty segments must still be skipped while stopping the cross-level 
> matching. Unchanged since CAMEL-16570; the fallthrough looks accidental, not 
> a feature.
> _Filed by Claude Code on behalf of Croway._



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

Reply via email to