You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by no...@apache.org on 2010/03/30 15:50:17 UTC

svn commit: r929141 - /james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPAMailbox.java

Author: norman
Date: Tue Mar 30 13:50:17 2010
New Revision: 929141

URL: http://svn.apache.org/viewvc?rev=929141&view=rev
Log:
We need to synchronize the consuming of the uid with JPA to avoid a race-condition (IMAP-126)

Modified:
    james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPAMailbox.java

Modified: james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPAMailbox.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPAMailbox.java?rev=929141&r1=929140&r2=929141&view=diff
==============================================================================
--- james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPAMailbox.java (original)
+++ james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPAMailbox.java Tue Mar 30 13:50:17 2010
@@ -103,8 +103,11 @@ public abstract class JPAMailbox extends
         return header;
     }
 
-    @Override
-    protected Mailbox<Long> reserveNextUid() throws MailboxException {
+    /**
+     * Reserve next Uid in mailbox and return the mailbox. This method needs to be synchronized 
+     * to be sure we don't get any race-condition
+     */
+    protected synchronized Mailbox<Long> reserveNextUid() throws MailboxException {
         final JPAMailboxMapper mapper = createMailboxMapper(getMailboxSession());
         final Mailbox<Long> mailbox = mapper.consumeNextUid(mailboxId);
         return mailbox;



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