Here is steps to reproduce the issue:
1. Set the plugin to use a low value timeout like this:
and individual deadLetterStrategy as following
2. Produce 10 messages either via or shipped ProducerTool example or the web console to TEST.IN queue (use persistent delivery mode);
3. Wait 1 minute for messages to expire and then propagate to DLQ.TEST.IN;
4. Confirm 10 messages arrived into DLQ.TEST.IN queue;
5. Open one message, and you'll see that the timeStampingBrokerPlugin has added a timestamp to the message. (Usually expired messages have expiration field cleared when going into the DLQ)
6. Wait one minute, and messages are expired from the DLQ.TEST.IN. The messages are not consumable or browsable any more (does not exist) although the webconsole still shows 10 messages pending.