diff options
-rw-r--r-- | qpid/cpp/src/qpid/broker/MessageGroupManager.cpp | 5 |
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; } |