Author: norman
Date: Thu Feb 17 06:32:15 2011
New Revision: 1071510
URL: http://svn.apache.org/viewvc?rev=1071510&view=rev
Log:
Respect all mailboxes/folders for a user when calculate the used space. See
JAMES-1198
Modified:
james/server/trunk/mailets/src/main/java/org/apache/james/transport/matchers/AbstractStorageQuota.java
Modified:
james/server/trunk/mailets/src/main/java/org/apache/james/transport/matchers/AbstractStorageQuota.java
URL:
http://svn.apache.org/viewvc/james/server/trunk/mailets/src/main/java/org/apache/james/transport/matchers/AbstractStorageQuota.java?rev=1071510&r1=1071509&r2=1071510&view=diff
==============================================================================
---
james/server/trunk/mailets/src/main/java/org/apache/james/transport/matchers/AbstractStorageQuota.java
(original)
+++
james/server/trunk/mailets/src/main/java/org/apache/james/transport/matchers/AbstractStorageQuota.java
Thu Feb 17 06:32:15 2011
@@ -22,6 +22,7 @@
package org.apache.james.transport.matchers;
import java.util.Iterator;
+import java.util.List;
import java.util.Locale;
import javax.annotation.Resource;
@@ -29,9 +30,10 @@ import javax.mail.MessagingException;
import org.apache.james.mailbox.BadCredentialsException;
import org.apache.james.mailbox.MailboxException;
+import org.apache.james.mailbox.MailboxMetaData;
import org.apache.james.mailbox.MailboxPath;
+import org.apache.james.mailbox.MailboxQuery;
import org.apache.james.mailbox.MessageManager;
-import org.apache.james.mailbox.MailboxConstants;
import org.apache.james.mailbox.MailboxManager;
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.MessageRange;
@@ -122,13 +124,16 @@ abstract public class AbstractStorageQuo
}
session = manager.createSystemSession(username,log);
manager.startProcessingRequest(session);
- MessageManager mailbox = manager.getMailbox(new
MailboxPath(MailboxConstants.USER_NAMESPACE,
-
session.getUser().getUserName(), "INBOX"),
- session);
- Iterator<MessageResult> results =
mailbox.getMessages(MessageRange.all(), new FetchGroupImpl(FetchGroup.MINIMAL),
session);
- while (results.hasNext()) {
- size += results.next().getSize();
+ // get all mailboxes for the user to calculate the size
+ // See JAMES-1198
+ List<MailboxMetaData> mList = manager.search(new
MailboxQuery(MailboxPath.inbox(username), "", session.getPathDelimiter()),
session);
+ for (int i = 0; i < mList.size(); i++) {
+ MessageManager mailbox =
manager.getMailbox(mList.get(i).getPath(), session);
+ Iterator<MessageResult> results =
mailbox.getMessages(MessageRange.all(), new FetchGroupImpl(FetchGroup.MINIMAL),
session);
+ while (results.hasNext()) {
+ size += results.next().getSize();
+ }
}
manager.endProcessingRequest(session);
manager.logout(session, true);
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]