summaryrefslogtreecommitdiff
path: root/qpid/cpp/src
diff options
context:
space:
mode:
authorAndrew Stitcher <astitcher@apache.org>2015-09-02 18:53:43 +0000
committerAndrew Stitcher <astitcher@apache.org>2015-09-02 18:53:43 +0000
commit5a416927a1afb25526a67fec59dce684e99a2dcb (patch)
treeb61cb49204b56b023839e07216f164f19abb96f5 /qpid/cpp/src
parent420c2a41e850265482579162bc3c1a2b07dd43e6 (diff)
downloadqpid-python-5a416927a1afb25526a67fec59dce684e99a2dcb.tar.gz
QPID-6717: Fix issue with BETWEEN comparisons when types don't match
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1700869 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/cpp/src')
-rw-r--r--qpid/cpp/src/qpid/broker/SelectorExpression.cpp7
1 files changed, 2 insertions, 5 deletions
diff --git a/qpid/cpp/src/qpid/broker/SelectorExpression.cpp b/qpid/cpp/src/qpid/broker/SelectorExpression.cpp
index 1e8a90ed4c..2884dd967a 100644
--- a/qpid/cpp/src/qpid/broker/SelectorExpression.cpp
+++ b/qpid/cpp/src/qpid/broker/SelectorExpression.cpp
@@ -369,13 +369,10 @@ public:
BoolOrNone eval_bool(const SelectorEnv& env) const {
Value ve(e->eval(env));
- if (unknown(ve)) return BN_UNKNOWN;
Value vl(l->eval(env));
- if (!unknown(vl) && ve<vl) return BN_FALSE;
Value vu(u->eval(env));
- if (!unknown(vu) && ve>vu) return BN_FALSE;
- if (unknown(vl) || unknown(vu)) return BN_UNKNOWN;
- return BN_TRUE;
+ if (unknown(ve) || unknown(vl) || unknown(vu)) return BN_UNKNOWN;
+ return BoolOrNone(ve>=vl && ve<=vu);
}
};