Johan Tjernström created MAILBOX-350:
----------------------------------------

             Summary: Double added events from StoreMessageManager can cause 
wrong sequence numbers
                 Key: MAILBOX-350
                 URL: https://issues.apache.org/jira/browse/MAILBOX-350
             Project: James Mailbox
          Issue Type: Bug
          Components: store
    Affects Versions: master, 3.1.0, 3.2.0
         Environment: Tested on Linux with Maildir storage and James 3.1.0
            Reporter: Johan Tjernström


When a COPY command is issued for a message two added events are dispatched 
from StoreMessageManager 
(mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageManager.java).
 The first event (row 712) use the message UID from the source mailbox and the 
second event (row 743) use a new UID from the target mailbox. If the source UID 
is "available" in the target mailbox a new entry will be added to the target 
mailbox UidMsnConverter which will mess up the sequence numbers.

In the example below two connection A and B are used. A selects the Inbox and B 
selects the Trash mailbox. Inbox and Trash contains one message each.

{{* OK JAMES IMAP4rev1 Server Server imapsrv is ready.}}
 {{A1 LOGIN "u...@test.com" "1234"}}
 {{A1 OK LOGIN completed.}}
 {{A2 SELECT inbox}}
 {{* FLAGS (\Answered \Deleted \Draft \Flagged \Seen)}}
 {{* 1 EXISTS}}
 {{* 0 RECENT}}
 {{* OK [UIDVALIDITY 1892339292] UIDs valid}}
 {{* OK [UNSEEN 1] MailboxMessage 1 is first unseen}}
 {{* OK [PERMANENTFLAGS (\Answered \Deleted \Draft \Flagged \Seen)] Limited}}
 {{* OK [HIGHESTMODSEQ 1538993301626] Highest}}
 {{* OK [UIDNEXT 2] Predicted next UID}}
 {{A2 OK [READ-WRITE] SELECT completed.}}
 {{A3 FETCH 1:* (FLAGS)}}
 {{* 1 FETCH (FLAGS ())}}
 {{A3 OK FETCH completed.}}
 {{* OK JAMES IMAP4rev1 Server Server imapsrv is ready.}}
 {{B1 LOGIN "u...@test.com" "1234"}}
 {{B1 OK LOGIN completed.}}
 {{B3 SELECT Trash}}
 {{* FLAGS (\Answered \Deleted \Draft \Flagged \Seen)}}
 {{* 1 EXISTS}}
 {{* 1 RECENT}}
 {{* OK [UIDVALIDITY 286991256] UIDs valid}}
 {{* OK [UNSEEN 1] MailboxMessage 1 is first unseen}}
 {{* OK [PERMANENTFLAGS (\Answered \Deleted \Draft \Flagged \Seen)] Limited}}
 {{* OK [HIGHESTMODSEQ 1538993663429] Highest}}
 {{* OK [UIDNEXT 3] Predicted next UID}}
 {{B3 OK [READ-WRITE] SELECT completed.}}
 Clear Trash
 {{B4 STORE 1 +FLAGS (\Deleted)}}
 {{* 1 FETCH (FLAGS (\Deleted \Recent))}}
 {{B4 OK STORE completed.}}
 {{B5 EXPUNGE}}
 {{* 1 EXPUNGE}}
 {{* 0 RECENT}}
 {{B5 OK EXPUNGE completed.}}
 {{B6 FETCH 1:* (FLAGS)}}
 {{B6 BAD FETCH failed. Invalid messageset.}}
 Copy message from Inbox to Trash
 {{A4 COPY 1 Trash}}
 {{A4 OK [COPYUID 286991256 1 3] COPY completed.}}
 Check messages in Trash
 {{B7 FETCH 1:* (FLAGS)}}
 {{* 2 FETCH (FLAGS (\Recent))}}
 {{* 2 EXISTS}} <-- SHOULD ONLY BE ONE!
 {{* 2 RECENT}}
 {{B7 OK FETCH completed.}}

Removing the first event seems to fix the problem.

(BTW: Is it correct to allow reuse of UIDs in UidMsnConverter?)



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org

Reply via email to