BUG-8491: Remove requests as they are replayed
[controller.git] / opendaylight / md-sal / cds-access-client / src / main / java / org / opendaylight / controller / cluster / access / client / TransmitQueue.java
index b2497fc7e71798afcde0b7bec2ca624e7c99df49..28902d28ba2142f59af6dbc055a4933c2eb76b3a 100644 (file)
@@ -232,22 +232,13 @@ abstract class TransmitQueue {
         poisonQueue(pending, cause);
     }
 
-    final void setForwarder(final ReconnectForwarder forwarder, final long now) {
+    final void setForwarder(final ReconnectForwarder forwarder) {
         Verify.verify(successor == null, "Successor {} already set on connection {}", successor, this);
-        successor = Preconditions.checkNotNull(forwarder);
-        LOG.debug("Connection {} superseded by {}, splicing queue", this, successor);
-
-        ConnectionEntry entry = inflight.poll();
-        while (entry != null) {
-            successor.forwardEntry(entry, now);
-            entry = inflight.poll();
-        }
+        Verify.verify(inflight.isEmpty(), "In-flight requests after replay: %s", inflight);
+        Verify.verify(pending.isEmpty(), "Pending requests after replay: %s", pending);
 
-        entry = pending.poll();
-        while (entry != null) {
-            successor.forwardEntry(entry, now);
-            entry = pending.poll();
-        }
+        successor = Preconditions.checkNotNull(forwarder);
+        LOG.debug("Connection {} superseded by {}", this, successor);
     }
 
     final void remove(final long now) {