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 2022/04/01 07:05:15 UTC

[camel] branch main updated: CAMEL-17806: camel-yaml-dsl - Better parser error with source loc:line of the problem

This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/main by this push:
     new d59980d  CAMEL-17806: camel-yaml-dsl - Better parser error with source loc:line of the problem
d59980d is described below

commit d59980daa832ba314b704fa1a0ac5389bc42a009
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Fri Apr 1 09:04:20 2022 +0200

    CAMEL-17806: camel-yaml-dsl - Better parser error with source loc:line of the problem
---
 .../dsl/yaml/common/YamlDeserializationContext.java    |  4 ++--
 .../common/exception/InvalidNodeTypeException.java     | 18 +++++++++++++++++-
 ...eTypeException.java => UnknownNodeIdException.java} |  6 +++---
 3 files changed, 22 insertions(+), 6 deletions(-)

diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl-common/src/main/java/org/apache/camel/dsl/yaml/common/YamlDeserializationContext.java b/dsl/camel-yaml-dsl/camel-yaml-dsl-common/src/main/java/org/apache/camel/dsl/yaml/common/YamlDeserializationContext.java
index f56483c..df7080e 100644
--- a/dsl/camel-yaml-dsl/camel-yaml-dsl-common/src/main/java/org/apache/camel/dsl/yaml/common/YamlDeserializationContext.java
+++ b/dsl/camel-yaml-dsl/camel-yaml-dsl-common/src/main/java/org/apache/camel/dsl/yaml/common/YamlDeserializationContext.java
@@ -32,7 +32,7 @@ import org.apache.camel.ExtendedCamelContext;
 import org.apache.camel.Ordered;
 import org.apache.camel.Service;
 import org.apache.camel.dsl.yaml.common.exception.DuplicateKeyException;
-import org.apache.camel.dsl.yaml.common.exception.UnknownNodeTypeException;
+import org.apache.camel.dsl.yaml.common.exception.UnknownNodeIdException;
 import org.apache.camel.dsl.yaml.common.exception.YamlDeserializationException;
 import org.apache.camel.spi.Resource;
 import org.apache.camel.util.ObjectHelper;
@@ -233,7 +233,7 @@ public class YamlDeserializationContext extends StandardConstructor implements C
                 }
 
                 if (answer == null) {
-                    throw new UnknownNodeTypeException(node, id);
+                    throw new UnknownNodeIdException(node, id);
                 }
 
                 return answer;
diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl-common/src/main/java/org/apache/camel/dsl/yaml/common/exception/InvalidNodeTypeException.java b/dsl/camel-yaml-dsl/camel-yaml-dsl-common/src/main/java/org/apache/camel/dsl/yaml/common/exception/InvalidNodeTypeException.java
index d3f2abf..6a73940 100644
--- a/dsl/camel-yaml-dsl/camel-yaml-dsl-common/src/main/java/org/apache/camel/dsl/yaml/common/exception/InvalidNodeTypeException.java
+++ b/dsl/camel-yaml-dsl/camel-yaml-dsl-common/src/main/java/org/apache/camel/dsl/yaml/common/exception/InvalidNodeTypeException.java
@@ -25,8 +25,24 @@ import org.snakeyaml.engine.v2.nodes.NodeType;
 public class InvalidNodeTypeException extends MarkedYamlEngineException {
 
     public InvalidNodeTypeException(Node node, NodeType expected) {
-        super(null, Optional.empty(), "NodeType: " + node.getNodeType() + " is invalid, expected " + expected,
+        super(null, Optional.empty(), "Node type " + nodeTypeName(node.getNodeType())
+                                      + " is invalid, expected " + nodeTypeName(expected),
               node.getStartMark());
     }
 
+    private static String nodeTypeName(NodeType nodeType) {
+        switch (nodeType) {
+            case ANCHOR:
+                return "anchor";
+            case MAPPING:
+                return "map";
+            case SCALAR:
+                return "key-value";
+            case SEQUENCE:
+                return "array";
+            default:
+                return nodeType.name();
+        }
+    }
+
 }
diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl-common/src/main/java/org/apache/camel/dsl/yaml/common/exception/UnknownNodeTypeException.java b/dsl/camel-yaml-dsl/camel-yaml-dsl-common/src/main/java/org/apache/camel/dsl/yaml/common/exception/UnknownNodeIdException.java
similarity index 80%
rename from dsl/camel-yaml-dsl/camel-yaml-dsl-common/src/main/java/org/apache/camel/dsl/yaml/common/exception/UnknownNodeTypeException.java
rename to dsl/camel-yaml-dsl/camel-yaml-dsl-common/src/main/java/org/apache/camel/dsl/yaml/common/exception/UnknownNodeIdException.java
index 9efe032..58044ca 100644
--- a/dsl/camel-yaml-dsl/camel-yaml-dsl-common/src/main/java/org/apache/camel/dsl/yaml/common/exception/UnknownNodeTypeException.java
+++ b/dsl/camel-yaml-dsl/camel-yaml-dsl-common/src/main/java/org/apache/camel/dsl/yaml/common/exception/UnknownNodeIdException.java
@@ -21,10 +21,10 @@ import java.util.Optional;
 import org.snakeyaml.engine.v2.exceptions.MarkedYamlEngineException;
 import org.snakeyaml.engine.v2.nodes.Node;
 
-public class UnknownNodeTypeException extends MarkedYamlEngineException {
+public class UnknownNodeIdException extends MarkedYamlEngineException {
 
-    public UnknownNodeTypeException(Node node, String nodeId) {
-        super(null, Optional.empty(), "Unknown type for node with id: " + nodeId, node.getStartMark());
+    public UnknownNodeIdException(Node node, String nodeId) {
+        super(null, Optional.empty(), "Unknown node id: " + nodeId, node.getStartMark());
     }
 
 }