Return-Path: X-Original-To: apmail-camel-commits-archive@www.apache.org Delivered-To: apmail-camel-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 312FDD81F for ; Tue, 23 Oct 2012 09:05:19 +0000 (UTC) Received: (qmail 45945 invoked by uid 500); 23 Oct 2012 09:05:19 -0000 Delivered-To: apmail-camel-commits-archive@camel.apache.org Received: (qmail 45840 invoked by uid 500); 23 Oct 2012 09:05:15 -0000 Mailing-List: contact commits-help@camel.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@camel.apache.org Delivered-To: mailing list commits@camel.apache.org Received: (qmail 45521 invoked by uid 99); 23 Oct 2012 09:05:13 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 23 Oct 2012 09:05:13 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 23 Oct 2012 09:05:10 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 1FF2C23888CD; Tue, 23 Oct 2012 09:04:26 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1401209 - in /camel/trunk/camel-core/src: main/java/org/apache/camel/language/simple/SimpleExpressionParser.java test/java/org/apache/camel/language/simple/SimpleOperatorTest.java Date: Tue, 23 Oct 2012 09:04:25 -0000 To: commits@camel.apache.org From: davsclaus@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121023090426.1FF2C23888CD@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: davsclaus Date: Tue Oct 23 09:04:25 2012 New Revision: 1401209 URL: http://svn.apache.org/viewvc?rev=1401209&view=rev Log: CAMEL-5736: Simple language - Unary operators should be more lenient and only be applicable if previous node is a function expression Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/language/simple/SimpleExpressionParser.java camel/trunk/camel-core/src/test/java/org/apache/camel/language/simple/SimpleOperatorTest.java Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/language/simple/SimpleExpressionParser.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/language/simple/SimpleExpressionParser.java?rev=1401209&r1=1401208&r2=1401209&view=diff ============================================================================== --- camel/trunk/camel-core/src/main/java/org/apache/camel/language/simple/SimpleExpressionParser.java (original) +++ camel/trunk/camel-core/src/main/java/org/apache/camel/language/simple/SimpleExpressionParser.java Tue Oct 23 09:04:25 2012 @@ -147,7 +147,10 @@ public class SimpleExpressionParser exte functions.decrementAndGet(); return new SimpleFunctionEnd(token); } else if (token.getType().isUnary()) { - return new UnaryExpression(token); + // there must be a end function as previous, to let this be a unary function + if (!nodes.isEmpty() && nodes.get(nodes.size() - 1) instanceof SimpleFunctionEnd) { + return new UnaryExpression(token); + } } // by returning null, we will let the parser determine what to do Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/language/simple/SimpleOperatorTest.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/language/simple/SimpleOperatorTest.java?rev=1401209&r1=1401208&r2=1401209&view=diff ============================================================================== --- camel/trunk/camel-core/src/test/java/org/apache/camel/language/simple/SimpleOperatorTest.java (original) +++ camel/trunk/camel-core/src/test/java/org/apache/camel/language/simple/SimpleOperatorTest.java Tue Oct 23 09:04:25 2012 @@ -458,6 +458,24 @@ public class SimpleOperatorTest extends } } + public void testUnaryInc() throws Exception { + assertExpression("${in.header.bar}++", 124); + assertExpression("+++++++++++++", "+++++++++++++"); + assertExpression("Logging ++ start ++", "Logging ++ start ++"); + assertExpression("Logging +++ start +++", "Logging +++ start +++"); + assertExpression("++ start ++", "++ start ++"); + assertExpression("+++ start +++", "+++ start +++"); + } + + public void testUnaryDec() throws Exception { + assertExpression("${in.header.bar}--", 122); + assertExpression("-------------", "-------------"); + assertExpression("Logging -- start --", "Logging -- start --"); + assertExpression("Logging --- start ---", "Logging --- start ---"); + assertExpression("-- start --", "-- start --"); + assertExpression("--- start ---", "--- start ---"); + } + protected String getLanguageName() { return "simple"; }