summaryrefslogtreecommitdiff
path: root/qpid/cpp/src
diff options
context:
space:
mode:
authorGordon Sim <gsim@apache.org>2009-02-25 15:46:04 +0000
committerGordon Sim <gsim@apache.org>2009-02-25 15:46:04 +0000
commitfcc6dc5cd355cb0fd0340c2bcf095c8d055d1cb5 (patch)
tree8a764bdb350e8b3589b85de483f2fa11aa11c6f7 /qpid/cpp/src
parente7be65166ffb08622ad089c844098d50895920ee (diff)
downloadqpid-python-fcc6dc5cd355cb0fd0340c2bcf095c8d055d1cb5.tar.gz
Fix for bug in credit reallocation, along with test from rafaels@redhat.com that reproduces it.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@747833 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/cpp/src')
-rw-r--r--qpid/cpp/src/qpid/broker/SemanticState.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/qpid/cpp/src/qpid/broker/SemanticState.cpp b/qpid/cpp/src/qpid/broker/SemanticState.cpp
index 4f751e43b7..ed6c2dc386 100644
--- a/qpid/cpp/src/qpid/broker/SemanticState.cpp
+++ b/qpid/cpp/src/qpid/broker/SemanticState.cpp
@@ -516,14 +516,16 @@ void SemanticState::ConsumerImpl::setCreditMode()
void SemanticState::ConsumerImpl::addByteCredit(uint32_t value)
{
if (byteCredit != 0xFFFFFFFF) {
- byteCredit += value;
+ if (value == 0xFFFFFFFF) byteCredit = value;
+ else byteCredit += value;
}
}
void SemanticState::ConsumerImpl::addMessageCredit(uint32_t value)
{
if (msgCredit != 0xFFFFFFFF) {
- msgCredit += value;
+ if (value == 0xFFFFFFFF) msgCredit = value;
+ else msgCredit += value;
}
}