You cannot do this if the dead inscription alivemust expire - according to the documentation ...
You can create a dead letter queue loop. For example, this can happen when the dead letter messages are queued for exchange by default without specifying a dead letter routing key. Messages in such cycles (i.e. Messages that reach the same queue twice) will be deleted if the entire cycle is associated with the expiration of the message .
(my emphasis).
I just checked a test where a dead letter from is alivecaused by a failure and it works fine; after several loops, the header x-deathlooks like this:
reason: rejected
queue: alive
time: 1419448981
exchange: req
routing-keys: alive
reason: expired
queue: dead
time: 1419448981
exchange: dlx
routing-keys: alive
reason: rejected
queue: alive
time: 1419448976
exchange: req
routing-keys: alive
reason: expired
queue: dead
time: 1419448976
exchange: dlx
routing-keys: alive
...
, Spring AMQP defaultRequeueRejected false.