diff options
| -rw-r--r-- | qpid/java/amqp-1-0-common/src/main/java/org/apache/qpid/amqp_1_0/transport/SessionEndpoint.java | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/qpid/java/amqp-1-0-common/src/main/java/org/apache/qpid/amqp_1_0/transport/SessionEndpoint.java b/qpid/java/amqp-1-0-common/src/main/java/org/apache/qpid/amqp_1_0/transport/SessionEndpoint.java index bc961cb86e..0f37518773 100644 --- a/qpid/java/amqp-1-0-common/src/main/java/org/apache/qpid/amqp_1_0/transport/SessionEndpoint.java +++ b/qpid/java/amqp-1-0-common/src/main/java/org/apache/qpid/amqp_1_0/transport/SessionEndpoint.java @@ -772,10 +772,13 @@ public class SessionEndpoint } public void sendFlow(final Flow flow) { - final int nextIncomingId = _nextIncomingTransferId.intValue(); - flow.setNextIncomingId(UnsignedInteger.valueOf(nextIncomingId)); + if(_nextIncomingTransferId != null) + { + final int nextIncomingId = _nextIncomingTransferId.intValue(); + flow.setNextIncomingId(UnsignedInteger.valueOf(nextIncomingId)); + _lastSentIncomingLimit = UnsignedInteger.valueOf(nextIncomingId + _availableIncomingCredit); + } flow.setIncomingWindow(UnsignedInteger.valueOf(_availableIncomingCredit)); - _lastSentIncomingLimit = UnsignedInteger.valueOf(nextIncomingId + _availableIncomingCredit); flow.setNextOutgoingId(UnsignedInteger.valueOf(_nextOutgoingTransferId.intValue())); flow.setOutgoingWindow(UnsignedInteger.valueOf(_availableOutgoingCredit)); @@ -784,11 +787,15 @@ public class SessionEndpoint public void sendFlowConditional() { - UnsignedInteger clientsCredit = _lastSentIncomingLimit.subtract(UnsignedInteger.valueOf(_nextIncomingTransferId.intValue())); - int i = UnsignedInteger.valueOf(_availableIncomingCredit).subtract(clientsCredit).compareTo(clientsCredit); - if(i >=0) + if(_nextIncomingTransferId != null) { - sendFlow(); + UnsignedInteger clientsCredit = + _lastSentIncomingLimit.subtract(UnsignedInteger.valueOf(_nextIncomingTransferId.intValue())); + int i = UnsignedInteger.valueOf(_availableIncomingCredit).subtract(clientsCredit).compareTo(clientsCredit); + if (i >= 0) + { + sendFlow(); + } } } |
