[ 
https://issues.apache.org/jira/browse/MAILBOX-75?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Norman Maurer updated MAILBOX-75:
---------------------------------

    Component/s: store
                 maildir mailbox
                 jpa mailbox
                 jcr mailbox

> CachingUidProvider MAY reuse previous used uid after restart
> ------------------------------------------------------------
>
>                 Key: MAILBOX-75
>                 URL: https://issues.apache.org/jira/browse/MAILBOX-75
>             Project: James Mailbox
>          Issue Type: Bug
>          Components: jcr mailbox, jpa mailbox, maildir mailbox, store
>    Affects Versions: 0.2
>            Reporter: Norman Maurer
>            Assignee: Norman Maurer
>            Priority: Critical
>             Fix For: 0.3
>
>
> The CachingUidProvider does lazy fetch the "highest" uid of all messages 
> stored in the mailbox on first request of the lastUid for a mailbox or if the 
> nextUid is requested. This works well if there were never emails in the 
> mailbox but MAY fail otherwise..
> The problem happens if you for example append 2 messages to the mailbox which 
> get the uids 1 and 2 assigned and then expunge the message with uid 2. As 
> long as the server is not restarted everything works well, but if you do so 
> and a new message will get append it will reuse the uid 2 for it as uid 1 is 
> the last known for it. This is strictly disallowed.
> See RFC 3501:
>    A 32-bit value assigned to each message, which when used with the
>    unique identifier validity value (see below) forms a 64-bit value
>    that MUST NOT refer to any other message in the mailbox or any
>    subsequent mailbox with the same name forever.  Unique identifiers
>    are assigned in a strictly ascending fashion in the mailbox; as each
>    message is added to the mailbox it is assigned a higher UID than the
>    message(s) which were added previously.  Unlike message sequence
>    numbers, unique identifiers are not necessarily contiguous.
> So even if this will hit the performance we need to store the lastUid 
> everytime we do an append to be sure we don't run in any problems

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to