summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon MacMullen <simon@rabbitmq.com>2011-06-02 18:03:46 +0100
committerSimon MacMullen <simon@rabbitmq.com>2011-06-02 18:03:46 +0100
commit9c31f2a89f7e6ae55030892ea39fba85647db019 (patch)
tree9dfeb1cae86773fc00bda0537287a694f4dcc0ac
parent08001ab69d88bff3cd8c4c4031cf45571f14eb7a (diff)
downloadrabbitmq-server-bug22953.tar.gz
Oops, we don't map true/false to transaction/none on recover. Let's fix that here...bug22953
-rw-r--r--src/rabbit_exchange.erl10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/rabbit_exchange.erl b/src/rabbit_exchange.erl
index b9b0203e..cab1b99f 100644
--- a/src/rabbit_exchange.erl
+++ b/src/rabbit_exchange.erl
@@ -94,7 +94,7 @@ recover() ->
true -> store(X);
false -> ok
end,
- rabbit_exchange:callback(X, create, [Tx, X])
+ rabbit_exchange:callback(X, create, [map_create_tx(Tx), X])
end,
rabbit_durable_exchange),
[XName || #exchange{name = XName} <- Xs].
@@ -128,10 +128,7 @@ declare(XName, Type, Durable, AutoDelete, Internal, Args) ->
end
end,
fun ({new, Exchange}, Tx) ->
- ok = XT:create(case Tx of
- true -> transaction;
- false -> none
- end, Exchange),
+ ok = XT:create(map_create_tx(Tx), Exchange),
rabbit_event:notify_if(not Tx, exchange_created, info(Exchange)),
Exchange;
({existing, Exchange}, _Tx) ->
@@ -140,6 +137,9 @@ declare(XName, Type, Durable, AutoDelete, Internal, Args) ->
Err
end).
+map_create_tx(true) -> transaction;
+map_create_tx(false) -> none.
+
store(X = #exchange{name = Name, type = Type}) ->
ok = mnesia:write(rabbit_exchange, X, write),
case (type_to_module(Type)):serialise_events() of