Author: astitcher
Date: Mon Jun 9 13:23:44 2014
New Revision: 1601372
URL: http://svn.apache.org/r1601372
Log:
QPID-5804: Fix broken selector parsing of unary '+'
Modified:
qpid/trunk/qpid/cpp/src/qpid/broker/SelectorExpression.cpp
qpid/trunk/qpid/cpp/src/tests/Selector.cpp
Modified: qpid/trunk/qpid/cpp/src/qpid/broker/SelectorExpression.cpp
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/broker/SelectorExpression.cpp?rev=1601372&r1=1601371&r2=1601372&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/broker/SelectorExpression.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/broker/SelectorExpression.cpp Mon Jun 9
13:23:44 2014
@@ -950,10 +950,10 @@ Expression* unaryArithExpression(Tokenis
return new UnaryArithExpression(&negate, e.release());
}
default:
+ tokeniser.returnTokens();
break;
}
- tokeniser.returnTokens();
std::auto_ptr<Expression> e(primaryExpression(tokeniser));
return e.release();
}
Modified: qpid/trunk/qpid/cpp/src/tests/Selector.cpp
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/Selector.cpp?rev=1601372&r1=1601371&r2=1601372&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/tests/Selector.cpp (original)
+++ qpid/trunk/qpid/cpp/src/tests/Selector.cpp Mon Jun 9 13:23:44 2014
@@ -303,6 +303,8 @@ QPID_AUTO_TEST_CASE(parseString)
BOOST_CHECK_NO_THROW(qb::Selector e("(354.6)"));
BOOST_CHECK_NO_THROW(qb::Selector e("A is null and 'hello out there'"));
BOOST_CHECK_NO_THROW(qb::Selector e("17/4>4"));
+ BOOST_CHECK_NO_THROW(qb::Selector e("17/4>+4"));
+ BOOST_CHECK_NO_THROW(qb::Selector e("17/4>-4"));
BOOST_CHECK_NO_THROW(qb::Selector e("A IN ('hello', 'there', 1 , true,
(1-17))"));
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]