Author: astitcher
Date: Sun Apr 27 22:22:08 2014
New Revision: 1590505

URL: http://svn.apache.org/r1590505
Log:
QPID-5725: Use correct comparison function to match property keys

Modified:
    qpid/trunk/qpid/cpp/src/qpid/broker/Message.cpp
    qpid/trunk/qpid/cpp/src/tests/MessageTest.cpp

Modified: qpid/trunk/qpid/cpp/src/qpid/broker/Message.cpp
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/broker/Message.cpp?rev=1590505&r1=1590504&r2=1590505&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/broker/Message.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/broker/Message.cpp Sun Apr 27 22:22:08 2014
@@ -295,7 +295,8 @@ class PropertyRetriever : public MapHand
 
     bool matches(const CharSequence& key)
     {
-        return ::strncmp(key.data, name.data(), std::min(key.size, 
name.size())) == 0;
+        return name.size()==key.size &&
+            ::strncmp(key.data, name.data(), key.size) == 0;
     }
 
     template <typename T> void handle(const CharSequence& key, T value)

Modified: qpid/trunk/qpid/cpp/src/tests/MessageTest.cpp
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/MessageTest.cpp?rev=1590505&r1=1590504&r2=1590505&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/tests/MessageTest.cpp (original)
+++ qpid/trunk/qpid/cpp/src/tests/MessageTest.cpp Sun Apr 27 22:22:08 2014
@@ -72,6 +72,18 @@ QPID_AUTO_TEST_CASE(testEncodeDecode)
     BOOST_CHECK(msg.isPersistent());
 }
 
+QPID_AUTO_TEST_CASE(testMessageProperties)
+{
+  string data("abcdefghijklmn");
+
+  qpid::types::Variant::Map properties;
+  properties["abc"] = "xyz";
+  Message msg = MessageUtils::createMessage(properties, data);
+
+  // Regression test that looking up a property doesn't return a prefix
+  BOOST_CHECK_EQUAL(msg.getProperty("abcdef").getType(), 
qpid::types::VAR_VOID);
+}
+
 QPID_AUTO_TEST_SUITE_END()
 
 }} // namespace qpid::tests



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to