diff options
Diffstat (limited to 'java/broker/src/main/java/org/apache/qpid/server/flow/Pre0_10CreditManager.java')
-rw-r--r-- | java/broker/src/main/java/org/apache/qpid/server/flow/Pre0_10CreditManager.java | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/java/broker/src/main/java/org/apache/qpid/server/flow/Pre0_10CreditManager.java b/java/broker/src/main/java/org/apache/qpid/server/flow/Pre0_10CreditManager.java index d9752b1098..be0300f2c1 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/flow/Pre0_10CreditManager.java +++ b/java/broker/src/main/java/org/apache/qpid/server/flow/Pre0_10CreditManager.java @@ -84,8 +84,10 @@ public class Pre0_10CreditManager extends AbstractFlowCreditManager implements F public synchronized void addCredit(final long messageCredit, final long bytesCredit) { final long messageCreditLimit = _messageCreditLimit; + boolean notifyIncrease = true; if(messageCreditLimit != 0L) { + notifyIncrease = (_messageCredit != 0); long newCredit = _messageCredit + messageCredit; _messageCredit = newCredit > messageCreditLimit ? messageCreditLimit : newCredit; } @@ -96,8 +98,14 @@ public class Pre0_10CreditManager extends AbstractFlowCreditManager implements F { long newCredit = _bytesCredit + bytesCredit; _bytesCredit = newCredit > bytesCreditLimit ? bytesCreditLimit : newCredit; + if(notifyIncrease && bytesCredit>0) + { + notifyIncreaseBytesCredit(); + } } + + setSuspended(!hasCredit()); } @@ -138,7 +146,7 @@ public class Pre0_10CreditManager extends AbstractFlowCreditManager implements F } else { - setSuspended(true); + //setSuspended(true); return false; } } @@ -166,7 +174,7 @@ public class Pre0_10CreditManager extends AbstractFlowCreditManager implements F } else { - setSuspended(true); + //setSuspended(true); return false; } } |