summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Hood <0x6e6562@gmail.com>2008-11-20 14:31:54 +0000
committerBen Hood <0x6e6562@gmail.com>2008-11-20 14:31:54 +0000
commit657c359e24ec8c300e2fd89a4bfc8201e6b4c3b4 (patch)
treea88e74653d2b845085e86f368463e6343545b454
parentf8b2adc26c76082254d9a78a7ded2eaf61dc5d99 (diff)
parent8f7d8312f0e2aaf786a72325fdf42202325207b1 (diff)
downloadrabbitmq-server-git-657c359e24ec8c300e2fd89a4bfc8201e6b4c3b4.tar.gz
Merged default into 18557
-rw-r--r--packaging/RPMS/Fedora/rabbitmq-server.spec2
-rw-r--r--src/rabbit_exchange.erl12
2 files changed, 11 insertions, 3 deletions
diff --git a/packaging/RPMS/Fedora/rabbitmq-server.spec b/packaging/RPMS/Fedora/rabbitmq-server.spec
index 214f6918fd..ae2f2d2b0e 100644
--- a/packaging/RPMS/Fedora/rabbitmq-server.spec
+++ b/packaging/RPMS/Fedora/rabbitmq-server.spec
@@ -11,7 +11,7 @@ URL: http://www.rabbitmq.com/
Vendor: LShift Ltd., Cohesive Financial Technologies LLC., Rabbit Technlogies Ltd.
%if 0%{?debian}
%else
-BuildRequires: python, python-json
+BuildRequires: erlang, python-json
%endif
Requires: erlang, logrotate
Packager: Hubert Plociniczak <hubert@lshift.net>
diff --git a/src/rabbit_exchange.erl b/src/rabbit_exchange.erl
index a8c54438a2..58b8d7d60a 100644
--- a/src/rabbit_exchange.erl
+++ b/src/rabbit_exchange.erl
@@ -268,9 +268,17 @@ exchanges_for_queue(QueueName) ->
has_bindings(ExchangeName) ->
MatchHead = #route{binding = #binding{exchange_name = ExchangeName,
- queue_name = '$1',
_ = '_'}},
- continue(mnesia:select(route, [{MatchHead, [], ['$1']}], 1, read)).
+ try
+ continue(mnesia:select(route, [{MatchHead, [], ['$_']}], 1, read))
+ catch exit:{aborted, {badarg, _}} ->
+ %% work around OTP-7025, which was fixed in R12B-1, by
+ %% falling back on a less efficient method
+ case mnesia:match_object(MatchHead) of
+ [] -> false;
+ [_|_] -> true
+ end
+ end.
continue('$end_of_table') -> false;
continue({[_|_], _}) -> true;