Repository: camel
Updated Branches:
  refs/heads/camel-2.15.x b03a51c95 -> b5cfe4d7d
  refs/heads/camel-2.16.x e077fdfba -> 0363a7274
  refs/heads/master 88fede5e3 -> 9a6e6d8a9


CAMEL-9641: Simple backwards parser bug if using file as prefix


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

Branch: refs/heads/camel-2.15.x
Commit: b5cfe4d7dcf2765b0bcd861b72e4811843fe8e7e
Parents: b03a51c
Author: Claus Ibsen <davscl...@apache.org>
Authored: Wed Feb 24 16:56:24 2016 +0100
Committer: Claus Ibsen <davscl...@apache.org>
Committed: Wed Feb 24 17:31:05 2016 +0100

----------------------------------------------------------------------
 .../language/simple/ast/SimpleFunctionExpression.java    | 11 +++++++----
 .../org/apache/camel/language/simple/SimpleTest.java     |  4 ++++
 2 files changed, 11 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/b5cfe4d7/camel-core/src/main/java/org/apache/camel/language/simple/ast/SimpleFunctionExpression.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/language/simple/ast/SimpleFunctionExpression.java
 
b/camel-core/src/main/java/org/apache/camel/language/simple/ast/SimpleFunctionExpression.java
index 71b4eb6..9ff0376 100644
--- 
a/camel-core/src/main/java/org/apache/camel/language/simple/ast/SimpleFunctionExpression.java
+++ 
b/camel-core/src/main/java/org/apache/camel/language/simple/ast/SimpleFunctionExpression.java
@@ -131,8 +131,8 @@ public class SimpleFunctionExpression extends 
LiteralExpression {
         // file: prefix
         remainder = ifStartsWithReturnRemainder("file:", function);
         if (remainder != null) {
-            Expression fileExpression = createSimpleFileExpression(remainder);
-            if (function != null) {
+            Expression fileExpression = createSimpleFileExpression(remainder, 
strict);
+            if (fileExpression != null) {
                 return fileExpression;
             }
         }
@@ -343,7 +343,7 @@ public class SimpleFunctionExpression extends 
LiteralExpression {
         return null;
     }
 
-    private Expression createSimpleFileExpression(String remainder) {
+    private Expression createSimpleFileExpression(String remainder, boolean 
strict) {
         if (ObjectHelper.equal(remainder, "name")) {
             return ExpressionBuilder.fileNameExpression();
         } else if (ObjectHelper.equal(remainder, "name.noext")) {
@@ -373,7 +373,10 @@ public class SimpleFunctionExpression extends 
LiteralExpression {
         } else if (ObjectHelper.equal(remainder, "modified")) {
             return ExpressionBuilder.fileLastModifiedExpression();
         }
-        throw new SimpleParserException("Unknown file language syntax: " + 
remainder, token.getIndex());
+        if (strict) {
+            throw new SimpleParserException("Unknown file language syntax: " + 
remainder, token.getIndex());
+        }
+        return null;
     }
 
     private String ifStartsWithReturnRemainder(String prefix, String text) {

http://git-wip-us.apache.org/repos/asf/camel/blob/b5cfe4d7/camel-core/src/test/java/org/apache/camel/language/simple/SimpleTest.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/test/java/org/apache/camel/language/simple/SimpleTest.java 
b/camel-core/src/test/java/org/apache/camel/language/simple/SimpleTest.java
index cce849d..77a6c2b 100644
--- a/camel-core/src/test/java/org/apache/camel/language/simple/SimpleTest.java
+++ b/camel-core/src/test/java/org/apache/camel/language/simple/SimpleTest.java
@@ -105,6 +105,10 @@ public class SimpleTest extends LanguageTestSupport {
         assertNull(SimpleLanguage.simple("${null}").evaluate(exchange, 
Object.class));
     }
 
+    public void testSimpleFileDir() throws Exception {
+        assertExpression("file:mydir", "file:mydir");
+    }
+
     public void testEmptyExpression() throws Exception {
         assertExpression("", "");
         assertExpression(" ", " ");

Reply via email to