summaryrefslogtreecommitdiff
path: root/java/broker/src/main/java/org/apache/qpid/server/flow/Pre0_10CreditManager.java
diff options
context:
space:
mode:
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.java12
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;
}
}