Author: rajith
Date: Thu Sep 13 20:15:36 2012
New Revision: 1384503

URL: http://svn.apache.org/viewvc?rev=1384503&view=rev
Log:
PROTON-14 When adding a new Head, you need to clear any pointers that it
has to it's next and prev and also when adding an item to the tail it
should clear it's next. The above bug resulted in infinite loops.

Modified:
    
qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/ConnectionImpl.java

Modified: 
qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/ConnectionImpl.java
URL: 
http://svn.apache.org/viewvc/qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/ConnectionImpl.java?rev=1384503&r1=1384502&r2=1384503&view=diff
==============================================================================
--- 
qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/ConnectionImpl.java
 (original)
+++ 
qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/ConnectionImpl.java
 Thu Sep 13 20:15:36 2012
@@ -216,8 +216,12 @@ public class ConnectionImpl extends Endp
 
     void addModified(EndpointImpl endpoint)
     {
+        dumpList(_transportHead);
+
         if(_transportTail == null)
         {
+            endpoint.setTransportNext(null);
+            endpoint.setTransportPrev(null);
             _transportHead = _transportTail = endpoint;
         }
         else
@@ -225,7 +229,22 @@ public class ConnectionImpl extends Endp
             _transportTail.setTransportNext(endpoint);
             endpoint.setTransportPrev(_transportTail);
             _transportTail = endpoint;
+            _transportTail.setTransportNext(null);
+        }
+
+        dumpList(_transportHead);
+    }
+
+    private void dumpList(EndpointImpl _transportHead)
+    {
+        StringBuffer buf = new StringBuffer();
+        EndpointImpl p = _transportHead;
+        while (p != null)
+        {
+            buf.append(p + "->");
+            p = p.transportNext();
         }
+        System.out.println(buf.toString());
     }
 
     void removeModified(EndpointImpl endpoint)
@@ -247,6 +266,7 @@ public class ConnectionImpl extends Endp
         {
             
endpoint.transportNext().setTransportPrev(endpoint.transportPrev());
         }
+        dumpList(_transportHead);
     }
 
     public int getMaxChannels()



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

Reply via email to