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]

Reply via email to