Created attachment 615911 [details] [diff] [review] this uses an output stream for new messages that is also an input stream. pop3 filters on new incoming messages don't write the keywords into the mailbox, which means if the folder is reparsed, we'll lose the keywords. The issue is that the output stream that berkeley mailboxes use for new messages isn't also an input stream, which means that the change keywords code can't get an input stream to figure out where to write the keyword change. I believe flag changes would also have this issue. I have a relatively simple fix for this. I'll try to write a test for it as well. The fix will mean that you can change flags while download is going on, which didn't used to be the case. The pop3 download code always seeks to the end of the stream before writing data, so we shouldn't get issues of messages getting written into the middle of the folder, but I'd want to bang on it for a bit to make sure.
Created attachment 615944 [details] [diff] [review] adds unit test, fixes mark read and flagged actions I discovered mark read/unread and mark flagged pop3 filter actions weren't going through the folder.
Created attachment 615948 [details] [diff] [review] remove commented out code
I've requested a try server build w/ this patch - http://email@example.com
Comment on attachment 615948 [details] [diff] [review] remove commented out code Review of attachment 615948 [details] [diff] [review]: ----------------------------------------------------------------- Looks good. r+a=me.
Checked in: http://hg.mozilla.org/comm-central/rev/f7856c1e7a5e http://hg.mozilla.org/releases/comm-aurora/rev/3d4ba86a976d http://hg.mozilla.org/releases/comm-beta/rev/33ee8cf6630f
Checked Tb truk 4/19 build on Win-XP. > Mozilla/5.0 (Windows NT 5.1; rv:14.0) Gecko/20120419 Thunderbird/14.0a1 Filter rule actions. > type="1" > action="AddTag" > actionValue="zz" > action="Mark read" > action="Mark flagged" > action="Move to folder" > actionValue="mailbox:// ... " After filter application upon download, following header was written in move target folder. > X-Mozilla-Status: 0005 > X-Mozilla-Status2: 00000000 > X-Mozilla-Keys: xx VERIFIED.