summaryrefslogtreecommitdiff
path: root/cpp
diff options
context:
space:
mode:
authorGordon Sim <gsim@apache.org>2008-12-04 09:25:33 +0000
committerGordon Sim <gsim@apache.org>2008-12-04 09:25:33 +0000
commit445a6dfa1468cbb80ec473abefb1099435a871ce (patch)
tree553631dff6515df4dbfb1746fb3d3f69366e51dc /cpp
parent6a7490ea9ae615dfec483bbc347ccdc9b2c2d8b3 (diff)
downloadqpid-python-445a6dfa1468cbb80ec473abefb1099435a871ce.tar.gz
QPID-1514: Add check for presence of key to FieldTable::erase()
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@723263 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp')
-rw-r--r--cpp/src/qpid/framing/FieldTable.cpp3
-rw-r--r--cpp/src/tests/QueueOptionsTest.cpp19
2 files changed, 21 insertions, 1 deletions
diff --git a/cpp/src/qpid/framing/FieldTable.cpp b/cpp/src/qpid/framing/FieldTable.cpp
index 7ff5a07c9a..7260261970 100644
--- a/cpp/src/qpid/framing/FieldTable.cpp
+++ b/cpp/src/qpid/framing/FieldTable.cpp
@@ -232,7 +232,8 @@ bool FieldTable::operator==(const FieldTable& x) const {
void FieldTable::erase(const std::string& name)
{
- values.erase(values.find(name));
+ if (values.find(name) != values.end())
+ values.erase(name);
}
}
diff --git a/cpp/src/tests/QueueOptionsTest.cpp b/cpp/src/tests/QueueOptionsTest.cpp
index 7d9bfa68fb..bac369bfec 100644
--- a/cpp/src/tests/QueueOptionsTest.cpp
+++ b/cpp/src/tests/QueueOptionsTest.cpp
@@ -75,5 +75,24 @@ QPID_AUTO_TEST_CASE(testFlags)
}
+QPID_AUTO_TEST_CASE(testSetOrdering)
+{
+ //ensure setOrdering(FIFO) works even if not preceded by a call to
+ //setOrdering(LVQ)
+ QueueOptions ft;
+ ft.setOrdering(FIFO);
+ BOOST_CHECK(!ft.isSet(QueueOptions::strLastValueQueue));
+
+}
+
+QPID_AUTO_TEST_CASE(testClearPersistLastNode)
+{
+ //ensure clear works even if not preceded by the setting on the
+ //option
+ QueueOptions ft;
+ ft.clearPersistLastNode();
+ BOOST_CHECK(!ft.isSet(QueueOptions::strPersistLastNode));
+}
+
QPID_AUTO_TEST_SUITE_END()