summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMatthew Sackman <matthew@lshift.net>2009-10-23 14:39:55 +0100
committerMatthew Sackman <matthew@lshift.net>2009-10-23 14:39:55 +0100
commitb1bd75a4062900c67213c39d94e3dd04547defdc (patch)
tree02db6a1eb429541388266f6fe2bb7069695e15b2 /src
parent9ab1135f64baa7f59fbc3cb2e6b43f2a1614c748 (diff)
downloadrabbitmq-server-git-b1bd75a4062900c67213c39d94e3dd04547defdc.tar.gz
Yes, turns out it's a good idea to observe the is_persistent flag...
Diffstat (limited to 'src')
-rw-r--r--src/rabbit_variable_queue.erl9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/rabbit_variable_queue.erl b/src/rabbit_variable_queue.erl
index cb2bdca718..d9520d0080 100644
--- a/src/rabbit_variable_queue.erl
+++ b/src/rabbit_variable_queue.erl
@@ -384,9 +384,14 @@ tx_commit_from_msg_store(Pubs, AckTags, From, State) ->
State1 = ack(DiskAcks, State),
{PubSeqIds, State2 = #vqstate { index_state = IndexState }} =
lists:foldl(
- fun (Msg, {SeqIdsAcc, StateN}) ->
+ fun (Msg = #basic_message { is_persistent = IsPersistent },
+ {SeqIdsAcc, StateN}) ->
{SeqId, StateN1} = publish(Msg, false, true, StateN),
- {[SeqId | SeqIdsAcc], StateN1}
+ SeqIdsAcc1 = case IsPersistent of
+ true -> [SeqId | SeqIdsAcc];
+ false -> SeqIdsAcc
+ end,
+ {SeqIdsAcc1, StateN1}
end, {[], State1}, Pubs),
IndexState1 =
rabbit_queue_index:sync_seq_ids(PubSeqIds, [] /= DiskAcks, IndexState),