You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ra...@apache.org on 2012/09/13 22:15:37 UTC

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

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: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org