This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch worktree-snazzy-petting-map in repository https://gitbox.apache.org/repos/asf/camel.git
commit 36ef79bd15651ac0dfc8a22395f4569234278ddd Author: Claus Ibsen <[email protected]> AuthorDate: Sat Jul 11 09:59:04 2026 +0200 CAMEL-23989: camel-yaml-dsl - Fix nodeAt() matching later pointer segments at wrong depth Co-Authored-By: Claude Opus 4.6 <[email protected]> Signed-off-by: Claus Ibsen <[email protected]> --- .../apache/camel/dsl/yaml/common/YamlDeserializerSupport.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl-common/src/main/java/org/apache/camel/dsl/yaml/common/YamlDeserializerSupport.java b/dsl/camel-yaml-dsl/camel-yaml-dsl-common/src/main/java/org/apache/camel/dsl/yaml/common/YamlDeserializerSupport.java index 0c661f570e2c..4b2bef9d6b5d 100644 --- a/dsl/camel-yaml-dsl/camel-yaml-dsl-common/src/main/java/org/apache/camel/dsl/yaml/common/YamlDeserializerSupport.java +++ b/dsl/camel-yaml-dsl/camel-yaml-dsl-common/src/main/java/org/apache/camel/dsl/yaml/common/YamlDeserializerSupport.java @@ -418,17 +418,24 @@ public class YamlDeserializerSupport { MappingNode mn = asMappingNode(root); for (String path : pointer.split("/")) { + if (path.isEmpty()) { + continue; + } for (NodeTuple child : mn.getValue()) { if (child.getKeyNode() instanceof ScalarNode) { ScalarNode scalar = (ScalarNode) child.getKeyNode(); if (scalar.getValue().equals(path)) { - String next = pointer.substring(path.length() + 1); + String next = pointer.substring(pointer.indexOf(path) + path.length()); + if (next.startsWith("/")) { + next = next.substring(1); + } return ObjectHelper.isEmpty(next) ? child.getValueNode() : nodeAt(child.getValueNode(), next); } } } + return null; } return null;
