Author: rgodfrey
Date: Tue Sep 16 10:55:24 2014
New Revision: 1625241

URL: http://svn.apache.org/r1625241
Log:
QPID-6103 : Fix NPE which occurred when first flow was sent before receiving 
initial flow from partner

Modified:
    
qpid/trunk/qpid/java/amqp-1-0-common/src/main/java/org/apache/qpid/amqp_1_0/transport/SessionEndpoint.java

Modified: 
qpid/trunk/qpid/java/amqp-1-0-common/src/main/java/org/apache/qpid/amqp_1_0/transport/SessionEndpoint.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/amqp-1-0-common/src/main/java/org/apache/qpid/amqp_1_0/transport/SessionEndpoint.java?rev=1625241&r1=1625240&r2=1625241&view=diff
==============================================================================
--- 
qpid/trunk/qpid/java/amqp-1-0-common/src/main/java/org/apache/qpid/amqp_1_0/transport/SessionEndpoint.java
 (original)
+++ 
qpid/trunk/qpid/java/amqp-1-0-common/src/main/java/org/apache/qpid/amqp_1_0/transport/SessionEndpoint.java
 Tue Sep 16 10:55:24 2014
@@ -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();
+            }
         }
 
     }



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

Reply via email to