diff --git a/src/com/rabbitmq/client/impl/recovery/AutorecoveringConnection.java b/src/com/rabbitmq/client/impl/recovery/AutorecoveringConnection.java index 32e875fce4..b559625fb5 100644 --- a/src/com/rabbitmq/client/impl/recovery/AutorecoveringConnection.java +++ b/src/com/rabbitmq/client/impl/recovery/AutorecoveringConnection.java @@ -638,9 +638,10 @@ synchronized void recordQueueBinding(AutorecoveringChannel ch, destination(queue). routingKey(routingKey). arguments(arguments); - if (!this.recordedBindings.contains(binding)) { - this.recordedBindings.add(binding); + if (this.recordedBindings.contains(binding)) { + this.recordedBindings.remove(binding); } + this.recordedBindings.add(binding); } synchronized boolean deleteRecordedQueueBinding(AutorecoveringChannel ch, @@ -666,6 +667,9 @@ synchronized void recordExchangeBinding(AutorecoveringChannel ch, destination(destination). routingKey(routingKey). arguments(arguments); + if (this.recordedBindings.contains(binding)) { + this.recordedBindings.remove(binding); + } this.recordedBindings.add(binding); }