summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--qpid/cpp/src/qpid/broker/MessageGroupManager.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/qpid/cpp/src/qpid/broker/MessageGroupManager.cpp b/qpid/cpp/src/qpid/broker/MessageGroupManager.cpp
index 77108c10d5..00d1a58bef 100644
--- a/qpid/cpp/src/qpid/broker/MessageGroupManager.cpp
+++ b/qpid/cpp/src/qpid/broker/MessageGroupManager.cpp
@@ -77,12 +77,15 @@ MessageGroupManager::GroupState& MessageGroupManager::findGroup( const QueuedMes
if (headers) {
qpid::framing::FieldTable::ValuePtr id = headers->get( groupIdHeader );
if (id && id->convertsTo<std::string>()) {
- group = id->get<std::string>();
+ std::string tmp = id->get<std::string>();
+ if (!tmp.empty()) // empty group is reserved
+ group = tmp;
}
}
if (cachedGroup && group == lastGroup) {
hits++;
+ lastMsg = thisMsg;
return *cachedGroup;
}