Message redelivery on Exception

I did put the code on GitHub to help the readability: