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