summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMatthew Sackman <matthew@lshift.net>2009-10-16 12:12:28 +0100
committerMatthew Sackman <matthew@lshift.net>2009-10-16 12:12:28 +0100
commitfd898a5062c75057f1d7979ada125a0f5ac1ae0b (patch)
tree9ed33b2a02c5f6afe651884cec2547557a2014be /src
parent42fac66afc783aecba5c6828aa82a0330f498067 (diff)
downloadrabbitmq-server-git-fd898a5062c75057f1d7979ada125a0f5ac1ae0b.tar.gz
bug fix.
Diffstat (limited to 'src')
-rw-r--r--src/rabbit_variable_queue.erl12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/rabbit_variable_queue.erl b/src/rabbit_variable_queue.erl
index 446042e0f7..745d59eadd 100644
--- a/src/rabbit_variable_queue.erl
+++ b/src/rabbit_variable_queue.erl
@@ -280,7 +280,10 @@ ack(AckTags, State = #vqstate { index_state = IndexState }) ->
[] -> IndexState;
_ -> rabbit_queue_index:write_acks(SeqIds, IndexState)
end,
- ok = rabbit_msg_store:remove(MsgIds),
+ ok = case MsgIds of
+ [] -> ok;
+ _ -> rabbit_msg_store:remove(MsgIds)
+ end,
State #vqstate { index_state = IndexState1 }.
purge(State = #vqstate { prefetcher = undefined, q4 = Q4,
@@ -340,7 +343,10 @@ tx_publish(_Msg, State) ->
State.
tx_rollback(Pubs, State) ->
- ok = rabbit_msg_store:remove(persistent_msg_ids(Pubs)),
+ ok = case persistent_msg_ids(Pubs) of
+ [] -> ok;
+ PP -> rabbit_msg_store:remove(PP)
+ end,
State.
tx_commit(Pubs, AckTags, State) ->
@@ -642,6 +648,8 @@ maybe_write_msg_to_disk(Bool, PersistentMsgsAlreadyOnDisk,
orelse (IsPersistent andalso not PersistentMsgsAlreadyOnDisk) ->
ok = rabbit_msg_store:write(MsgId, ensure_binary_properties(Msg)),
true;
+maybe_write_msg_to_disk(_Bool, true, #basic_message { is_persistent = true }) ->
+ true;
maybe_write_msg_to_disk(_Bool, _PersistentMsgsAlreadyOnDisk, _Msg) ->
false.