There is a helper method that makes a copy of your message. With this, you can send a copy of your original message instead of re-sending the same object (which will not work if the previous one is still in use).
public static Message obtain (Message orig);
Others suggest deleting the message from the handler and resending it again. That would solve the exception, but you are unlikely to want it. Deleting and resending may result in the loss of invalid messages. That is why I suggest making a copy of your message.
Check your messages and make sure you do not send them twice.
UPDATE:
And to make it clear ... you can send messages with the same what (or other parameters) as many times as you want. The only thing you need to be sure of is to make a new message every time you send a message. You do not need to delete anything, it will be added to the message handler queue.
source share