InMemoryStore expunge() doesn't clean up all mail
Brought to you by:
marcel_may,
waelc
Hi
The expunge method doesn't work when there are multiple deleted mail (deletes every second mail).
This is because the loop checks the list size, but the loops body changes the list.
Something like this:
public void expunge() throws FolderException {
// get size outside of the loop
int size = mailMessages.size()
for (int i = 0; i < size; i++) {
SimpleStoredMessage message = (SimpleStoredMessage) mailMessages.get(i);
if (message.getFlags().contains(Flags.Flag.DELETED)) {
expungeMessage(i + 1);
}
}
}
Regards,
Peter ( Peter.Perenyi <at> ird.govt.nz )
Thanks!
Closed in latest version https://github.com/greenmail-mail-test/greenmail/issues/1