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(" ", " ");