{
TransactionItem transactionItem = items[n];
if (transactionItem.getDestination() != this)
continue; // Not for us
MessageStore store = transactionItem.getDeliveryMode() == DeliveryMode.PERSISTENT ? persistentStore : volatileStore;
int handle = transactionItem.getHandle();
// Retrieve message content
AbstractMessage msg = store.retrieve(handle);
// Update redelivered flag both in memory and message store
msg.setJMSRedelivered(true);
handle = store.replace(handle, msg);
if (redeliveryDelay > 0)
{
// Keep the message locked so it cannot be re-consumed immediately
// and schedule the message unlock afetr redeliveryDelay milliseconds
redeliveryTimer.schedule(new RedeliveryTask(msg,store,handle),
redeliveryDelay);
}
else
{
// Unlock message in store
store.unlock(handle);
if (traceEnabled)
log.trace(localSession+" UNLOCKED "+transactionItem.getMessageId());
// Add to dispatch list
if (newEntries == null)