summaryrefslogtreecommitdiff
path: root/qpid/java/client
diff options
context:
space:
mode:
authorRobert Godfrey <rgodfrey@apache.org>2014-10-14 10:33:50 +0000
committerRobert Godfrey <rgodfrey@apache.org>2014-10-14 10:33:50 +0000
commitf3ca13445de8000f96c259274b175e0b49c388ac (patch)
tree60f1db90817ed644ec54398d36708720661bb48a /qpid/java/client
parent5323ebbd7fb41f1a06a65c9463190ed1e5cda9eb (diff)
downloadqpid-python-f3ca13445de8000f96c259274b175e0b49c388ac.tar.gz
QPID-6088 : only reset the credit window if the credit window has been expanded
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1631712 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/client')
-rw-r--r--qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_8.java5
1 files changed, 4 insertions, 1 deletions
diff --git a/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_8.java b/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_8.java
index 693358c3ae..77225a948d 100644
--- a/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_8.java
+++ b/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_8.java
@@ -32,6 +32,7 @@ import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;
+import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicInteger;
import javax.jms.Destination;
@@ -98,6 +99,7 @@ public class AMQSession_0_8 extends AMQSession<BasicMessageConsumer_0_8, BasicMe
/** Flow control */
private FlowControlIndicator _flowControl = new FlowControlIndicator();
+ private final AtomicBoolean _creditChanged = new AtomicBoolean();
/**
* Creates a new session on a connection.
@@ -858,6 +860,7 @@ public class AMQSession_0_8 extends AMQSession<BasicMessageConsumer_0_8, BasicMe
getProtocolHandler().syncWrite(basicQosBody.generateFrame(getChannelId()),
BasicQosOkBody.class);
+ _creditChanged.set(true);
return true;
}
else
@@ -874,7 +877,7 @@ public class AMQSession_0_8 extends AMQSession<BasicMessageConsumer_0_8, BasicMe
int acknowledgeMode = getAcknowledgeMode();
boolean manageCredit = acknowledgeMode == javax.jms.Session.CLIENT_ACKNOWLEDGE || acknowledgeMode == javax.jms.Session.SESSION_TRANSACTED;
- if(manageCredit)
+ if(manageCredit && _creditChanged.compareAndSet(true,false))
{
new FailoverNoopSupport<>(
new FailoverProtectedOperation<Void, AMQException>()