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 2017/01/12 08:58:08 UTC

[2/2] camel git commit: CAMEL-10699: Simple - Add short error message

CAMEL-10699: Simple - Add short error message


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/70d4750f
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/70d4750f
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/70d4750f

Branch: refs/heads/camel-2.18.x
Commit: 70d4750fbdea475b2ced6caff5d6b623715bbac3
Parents: 83e8e1f
Author: Claus Ibsen <da...@apache.org>
Authored: Thu Jan 12 09:50:46 2017 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Thu Jan 12 09:58:00 2017 +0100

----------------------------------------------------------------------
 .../types/SimpleIllegalSyntaxException.java     | 10 ++++++++
 .../camel/catalog/DefaultCamelCatalog.java      | 25 ++++++++++++++++++++
 .../camel/catalog/SimpleValidationResult.java   |  9 +++++++
 .../apache/camel/catalog/CamelCatalogTest.java  |  2 ++
 4 files changed, 46 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/70d4750f/camel-core/src/main/java/org/apache/camel/language/simple/types/SimpleIllegalSyntaxException.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/language/simple/types/SimpleIllegalSyntaxException.java b/camel-core/src/main/java/org/apache/camel/language/simple/types/SimpleIllegalSyntaxException.java
index 0377763..b96db0c 100644
--- a/camel-core/src/main/java/org/apache/camel/language/simple/types/SimpleIllegalSyntaxException.java
+++ b/camel-core/src/main/java/org/apache/camel/language/simple/types/SimpleIllegalSyntaxException.java
@@ -48,6 +48,16 @@ public class SimpleIllegalSyntaxException extends ExpressionIllegalSyntaxExcepti
         return index;
     }
 
+    /**
+     * Gets a short error message.
+     */
+    public String getShortMessage() {
+        if (message == null) {
+            return "[null]";
+        }
+        return message;
+    }
+
     @Override
     public String getMessage() {
         if (message == null) {

http://git-wip-us.apache.org/repos/asf/camel/blob/70d4750f/platforms/catalog/src/main/java/org/apache/camel/catalog/DefaultCamelCatalog.java
----------------------------------------------------------------------
diff --git a/platforms/catalog/src/main/java/org/apache/camel/catalog/DefaultCamelCatalog.java b/platforms/catalog/src/main/java/org/apache/camel/catalog/DefaultCamelCatalog.java
index 688c546..b51256d 100644
--- a/platforms/catalog/src/main/java/org/apache/camel/catalog/DefaultCamelCatalog.java
+++ b/platforms/catalog/src/main/java/org/apache/camel/catalog/DefaultCamelCatalog.java
@@ -1715,6 +1715,31 @@ public class DefaultCamelCatalog implements CamelCatalog {
                         // ignore
                     }
                 }
+
+                // we need to grab the short message field from this simple syntax exception
+                if (cause.getClass().getName().equals("org.apache.camel.language.simple.types.SimpleIllegalSyntaxException")) {
+                    try {
+                        Method method = cause.getClass().getMethod("getShortMessage");
+                        Object result = method.invoke(cause);
+                        if (result != null) {
+                            String msg = (String) result;
+                            answer.setShortError(msg);
+                        }
+                    } catch (Throwable i) {
+                        // ignore
+                    }
+
+                    if (answer.getShortError() == null) {
+                        // fallback and try to make existing message short instead
+                        String msg = answer.getError();
+                        // grab everything before " at location " which would be regarded as the short message
+                        int idx = msg.indexOf(" at location ");
+                        if (idx > 0) {
+                            msg = msg.substring(0, idx);
+                            answer.setShortError(msg);
+                        }
+                    }
+                }
             }
         }
 

http://git-wip-us.apache.org/repos/asf/camel/blob/70d4750f/platforms/catalog/src/main/java/org/apache/camel/catalog/SimpleValidationResult.java
----------------------------------------------------------------------
diff --git a/platforms/catalog/src/main/java/org/apache/camel/catalog/SimpleValidationResult.java b/platforms/catalog/src/main/java/org/apache/camel/catalog/SimpleValidationResult.java
index 87c846e..5032758 100644
--- a/platforms/catalog/src/main/java/org/apache/camel/catalog/SimpleValidationResult.java
+++ b/platforms/catalog/src/main/java/org/apache/camel/catalog/SimpleValidationResult.java
@@ -22,6 +22,7 @@ public class SimpleValidationResult implements Serializable {
 
     private final String simple;
     private String error;
+    private String shortError;
     private int index;
 
     public SimpleValidationResult(String simple) {
@@ -44,6 +45,14 @@ public class SimpleValidationResult implements Serializable {
         return error;
     }
 
+    public String getShortError() {
+        return shortError;
+    }
+
+    public void setShortError(String shortError) {
+        this.shortError = shortError;
+    }
+
     public int getIndex() {
         return index;
     }

http://git-wip-us.apache.org/repos/asf/camel/blob/70d4750f/platforms/catalog/src/test/java/org/apache/camel/catalog/CamelCatalogTest.java
----------------------------------------------------------------------
diff --git a/platforms/catalog/src/test/java/org/apache/camel/catalog/CamelCatalogTest.java b/platforms/catalog/src/test/java/org/apache/camel/catalog/CamelCatalogTest.java
index cc6c339..e08e668 100644
--- a/platforms/catalog/src/test/java/org/apache/camel/catalog/CamelCatalogTest.java
+++ b/platforms/catalog/src/test/java/org/apache/camel/catalog/CamelCatalogTest.java
@@ -802,6 +802,7 @@ public class CamelCatalogTest {
         assertEquals("${body", result.getSimple());
         LOG.info(result.getError());
         assertTrue(result.getError().startsWith("expected symbol functionEnd but was eol at location 5"));
+        assertEquals("expected symbol functionEnd but was eol", result.getShortError());
         assertEquals(5, result.getIndex());
     }
 
@@ -816,6 +817,7 @@ public class CamelCatalogTest {
         assertEquals("${body} > ${header.size", result.getSimple());
         LOG.info(result.getError());
         assertTrue(result.getError().startsWith("expected symbol functionEnd but was eol at location 22"));
+        assertEquals("expected symbol functionEnd but was eol", result.getShortError());
         assertEquals(22, result.getIndex());
     }