You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2026/07/11 08:41:51 UTC
(camel) 09/15: CAMEL-23989: camel-yaml-dsl - Fix nodeAt() matching later pointer segments at wrong depth
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 <cl...@gmail.com>
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 <no...@anthropic.com>
Signed-off-by: Claus Ibsen <cl...@gmail.com>
---
.../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;