summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStephen D. Huston <shuston@apache.org>2010-11-13 13:10:42 +0000
committerStephen D. Huston <shuston@apache.org>2010-11-13 13:10:42 +0000
commit125ecf4977236ad4b67e2df117fe6261ed387a63 (patch)
tree8ecb87d52b6ced56a1da7cdb70bd979e8c0e8009
parent25cd1a320682c4c13b9a0eca3bd57f1b0bec5c67 (diff)
downloadqpid-python-125ecf4977236ad4b67e2df117fe6261ed387a63.tar.gz
Merged fix for QPID-2941 from trunk.
git-svn-id: https://svn.apache.org/repos/asf/qpid/branches/0.8-release-candidates@1034751 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--qpid/cpp/src/qpid/store/ms-clfs/Messages.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/qpid/cpp/src/qpid/store/ms-clfs/Messages.cpp b/qpid/cpp/src/qpid/store/ms-clfs/Messages.cpp
index 6ab00d560a..db5d2ebf4c 100644
--- a/qpid/cpp/src/qpid/store/ms-clfs/Messages.cpp
+++ b/qpid/cpp/src/qpid/store/ms-clfs/Messages.cpp
@@ -359,10 +359,13 @@ Messages::recover(qpid::broker::RecoveryManager& recoverer,
std::list<MessageInfo::Location>::iterator w = m->where.begin();
while (w != m->where.end()) {
if (w->queueId == loc.queueId) {
- if (loc.transaction.get() != 0)
+ if (loc.transaction.get() != 0) {
*w = loc;
- else
- m->where.erase(w);
+ ++w;
+ }
+ else {
+ w = m->where.erase(w);
+ }
}
}
}
@@ -381,6 +384,7 @@ Messages::recover(qpid::broker::RecoveryManager& recoverer,
messages.insert(p);
}
}
+
QPID_LOG(debug, "Message log recovery done.");
// Done! Ok, go back and delete all the homeless messages.
BOOST_FOREACH(uint64_t msg, homeless) {