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: [email protected]
For additional commands, e-mail: [email protected]