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 2011/10/10 21:13:47 UTC

svn commit: r1181144 - /james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/base/SelectedMailboxImpl.java

Author: norman
Date: Mon Oct 10 19:13:46 2011
New Revision: 1181144

URL: http://svn.apache.org/viewvc?rev=1181144&view=rev
Log:
Don't lock mailbox longer then necessary...

Modified:
    james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/base/SelectedMailboxImpl.java

Modified: james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/base/SelectedMailboxImpl.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/base/SelectedMailboxImpl.java?rev=1181144&r1=1181143&r2=1181144&view=diff
==============================================================================
--- james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/base/SelectedMailboxImpl.java (original)
+++ james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/base/SelectedMailboxImpl.java Mon Oct 10 19:13:46 2011
@@ -78,7 +78,8 @@ public class SelectedMailboxImpl impleme
     private boolean isDeletedByOtherSession = false;
     private boolean sizeChanged = false;
     private boolean silentFlagChanges = false;
-    private Flags applicableFlags;
+    private final Flags applicableFlags = new Flags(FLAGS);
+
     private boolean applicableFlagsChanged;
     
     private final SortedMap<Integer, Long> msnToUid =new TreeMap<Integer, Long>();;
@@ -101,23 +102,24 @@ public class SelectedMailboxImpl impleme
     }
  
 
-    private synchronized void init() throws MailboxException {
+    private void init() throws MailboxException {
         MailboxSession mailboxSession = ImapSessionUtils.getMailboxSession(session);
         
         mailboxManager.addListener(path, this, mailboxSession);
 
         MessageResultIterator messages = mailboxManager.getMailbox(path, mailboxSession).getMessages(MessageRange.all(), FetchGroupImpl.MINIMAL, mailboxSession);
-        Flags applicableFlags = new Flags(FLAGS);
-        while(messages.hasNext()) {
-            MessageResult mr = messages.next();
-            applicableFlags.add(mr.getFlags());
-            add(mr.getUid());
+        synchronized (this) {
+            while(messages.hasNext()) {
+                MessageResult mr = messages.next();
+                applicableFlags.add(mr.getFlags());
+                add(mr.getUid());
+            }
+            
+          
+            // \RECENT is not a applicable flag in imap so remove it from the list
+            applicableFlags.remove(Flags.Flag.RECENT);
         }
-        
-      
-        // \RECENT is not a applicable flag in imap so remove it from the list
-        applicableFlags.remove(Flags.Flag.RECENT);
-        this.applicableFlags = applicableFlags;
+       
     }
 
     private void add(int msn, long uid) {



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