diff options
| -rw-r--r-- | src/rabbit_channel.erl | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/rabbit_channel.erl b/src/rabbit_channel.erl index 474a5a91e6..e03be3a0d3 100644 --- a/src/rabbit_channel.erl +++ b/src/rabbit_channel.erl @@ -1089,7 +1089,7 @@ handle_method(#'tx.rollback'{}, _, #ch{tx_status = none}) -> handle_method(#'tx.rollback'{}, _, State = #ch{unacked_message_q = UAMQ, uncommitted_acks = TAL, uncommitted_nacks = TNL}) -> - TNL1 = lists:append(lists:map(fun ({_, L}) -> L end, TNL)), + TNL1 = lists:append([L || {_, L} <- TNL]), UAMQ1 = queue:from_list(lists:usort(TAL ++ TNL1 ++ queue:to_list(UAMQ))), {reply, #'tx.rollback_ok'{}, new_tx(State#ch{unacked_message_q = UAMQ1})}; @@ -1282,7 +1282,8 @@ reject_tx(DeliveryTag, Multiple, Requeue, State1 = State#ch{unacked_message_q = Remaining}, {noreply, case TxStatus of - none -> reject(Requeue, Acked, State); + none -> reject(Requeue, Acked, State1), + State1; in_progress -> State1#ch{uncommitted_nacks = {Requeue, Acked} ++ State1#ch.uncommitted_nacks} |
