Author: kwall
Date: Tue Nov 17 17:58:11 2015
New Revision: 1714839

URL: http://svn.apache.org/viewvc?rev=1714839&view=rev
Log:
QPID-6844 : Ensure that the AMQP 1.0 consumer target takes credit only if it 
did not suspend

Modified:
    
qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/ConsumerTarget_1_0.java

Modified: 
qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/ConsumerTarget_1_0.java
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/ConsumerTarget_1_0.java?rev=1714839&r1=1714838&r2=1714839&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/ConsumerTarget_1_0.java
 (original)
+++ 
qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/ConsumerTarget_1_0.java
 Tue Nov 17 17:58:11 2015
@@ -291,12 +291,17 @@ class ConsumerTarget_1_0 extends Abstrac
 
             ProtocolEngine protocolEngine = 
getSession().getConnection().getAmqpConnection();
             final boolean hasCredit = _link.isAttached() && 
getEndpoint().hasCreditToSend() && 
!protocolEngine.isTransportBlockedForWriting();
-            if(!hasCredit && getState() == State.ACTIVE)
+            if (!hasCredit && getState() == State.ACTIVE)
             {
                 suspend();
             }
-            SendingLinkEndpoint linkEndpoint = _link.getEndpoint();
-            
linkEndpoint.setLinkCredit(linkEndpoint.getLinkCredit().subtract(UnsignedInteger.ONE));
+
+            if (hasCredit)
+            {
+                SendingLinkEndpoint linkEndpoint = _link.getEndpoint();
+                
linkEndpoint.setLinkCredit(linkEndpoint.getLinkCredit().subtract(UnsignedInteger.ONE));
+            }
+
             return hasCredit;
         }
     }



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to