try {
// If the delivery channel has been closed
checkNotClosed();
// If the message has timed out
if (messageExchange.getPacket().isAborted()) {
throw new ExchangeTimeoutException(messageExchange);
}
// Auto enlist exchange in transaction
autoEnlistInTx(messageExchange);
// Update persistence info
Boolean persistent = messageExchange.getPersistent();