Author: rdonkin
Date: Sun Mar 9 15:49:44 2008
New Revision: 635390
URL: http://svn.apache.org/viewvc?rev=635390&view=rev
Log:
Fixed faulty coding in flag response. Always stick to one loop per method and
this kind of bug doesn't happen.
Modified:
james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/base/SelectedMailboxSessionImpl.java
Modified:
james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/base/SelectedMailboxSessionImpl.java
URL:
http://svn.apache.org/viewvc/james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/base/SelectedMailboxSessionImpl.java?rev=635390&r1=635389&r2=635390&view=diff
==============================================================================
---
james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/base/SelectedMailboxSessionImpl.java
(original)
+++
james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/base/SelectedMailboxSessionImpl.java
Sun Mar 9 15:49:44 2008
@@ -131,28 +131,32 @@
private void addFlagsResponses(final List responses, boolean useUid, final
ImapMailbox mailbox) {
try {
-
for (final Iterator it = events.flagUpdateUids(); it.hasNext();) {
Long uid = (Long) it.next();
GeneralMessageSet messageSet =
GeneralMessageSetImpl.oneUid(uid.longValue());
- final Iterator messages = mailbox.getMessages(messageSet,
FetchGroupImpl.FLAGS, mailboxSession);
- while (messages.hasNext()) {
- MessageResult mr = (MessageResult) it.next();
- int msn = msn(mr.getUid());
- final Flags flags = mr.getFlags();
- final Long uidOut;
- if (useUid) {
- uidOut = new Long(mr.getUid());
- } else {
- uidOut = null;
- }
- FetchResponse response = new FetchResponse(msn, flags,
uidOut, null, null, null, null, null);
- responses.add(response);
- }
+ addFlagsResponses(responses, useUid, mailbox, messageSet);
}
} catch (MessagingException e) {
final String message = "Failed to retrieve flags data";
handleResponseException(responses, e, message);
+ }
+ }
+
+ private void addFlagsResponses(final List responses, boolean useUid, final
ImapMailbox mailbox, GeneralMessageSet messageSet) throws
MailboxManagerException {
+ final Iterator it = mailbox.getMessages(messageSet,
FetchGroupImpl.FLAGS, mailboxSession);
+ while (it.hasNext()) {
+ MessageResult mr = (MessageResult) it.next();
+ final long uid = mr.getUid();
+ int msn = msn(uid);
+ final Flags flags = mr.getFlags();
+ final Long uidOut;
+ if (useUid) {
+ uidOut = new Long(uid);
+ } else {
+ uidOut = null;
+ }
+ FetchResponse response = new FetchResponse(msn, flags, uidOut,
null, null, null, null, null);
+ responses.add(response);
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]