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;

Reply via email to