summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSimon MacMullen <simon@rabbitmq.com>2011-03-23 15:26:49 +0000
committerSimon MacMullen <simon@rabbitmq.com>2011-03-23 15:26:49 +0000
commit0c7eba3c836953a4fcf722bbbe6f376ee2ef5956 (patch)
tree5ce59beb43b47d5d9023c850ec33199998374d05 /src
parente072f8017605a52eab069a4eb8415f5dcf7a3097 (diff)
downloadrabbitmq-server-git-0c7eba3c836953a4fcf722bbbe6f376ee2ef5956.tar.gz
Only return the queue the second time round and thus don't call XT:add_binding(#amqqueue{}, ...).
Diffstat (limited to 'src')
-rw-r--r--src/rabbit_amqqueue.erl8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/rabbit_amqqueue.erl b/src/rabbit_amqqueue.erl
index 102ea13b33..80dcb79a4a 100644
--- a/src/rabbit_amqqueue.erl
+++ b/src/rabbit_amqqueue.erl
@@ -214,7 +214,13 @@ internal_declare(Q = #amqqueue{name = QueueName}, false) ->
case mnesia:read({rabbit_durable_queue, QueueName}) of
[] -> ok = store_queue(Q),
B = add_default_binding(Q),
- fun (Tx) -> B(Tx), Q end;
+ fun (Tx) ->
+ R = B(Tx),
+ case Tx of
+ transaction -> R;
+ _ -> Q
+ end
+ end;
%% Q exists on stopped node
[_] -> rabbit_misc:const(not_found)
end;