diff options
author | Gordon Sim <gsim@apache.org> | 2009-02-25 15:46:04 +0000 |
---|---|---|
committer | Gordon Sim <gsim@apache.org> | 2009-02-25 15:46:04 +0000 |
commit | ecde9757abc26697220e00d3306a11919f2fe2ca (patch) | |
tree | 12a12ab5d20cb01954e9d09ed00306fe63c5d5a1 /cpp/src | |
parent | cddb14732340187296847418e419e70e3d007494 (diff) | |
download | qpid-python-ecde9757abc26697220e00d3306a11919f2fe2ca.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/qpid@747833 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src')
-rw-r--r-- | cpp/src/qpid/broker/SemanticState.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/cpp/src/qpid/broker/SemanticState.cpp b/cpp/src/qpid/broker/SemanticState.cpp index 4f751e43b7..ed6c2dc386 100644 --- a/cpp/src/qpid/broker/SemanticState.cpp +++ b/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; } } |