You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@james.apache.org by bt...@apache.org on 2022/04/19 04:04:02 UTC

[james-project] 11/49: JAMES-3737 IMAP Close: avoid reading mailbox metadata

This is an automated email from the ASF dual-hosted git repository.

btellier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git

commit cff05c2a76fb448940d0bac83363940f899910d4
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Fri Mar 25 21:53:33 2022 +0700

    JAMES-3737 IMAP Close: avoid reading mailbox metadata
---
 .../main/java/org/apache/james/imap/processor/CloseProcessor.java    | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/CloseProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/CloseProcessor.java
index f6cabec202..9246ada637 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/CloseProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/CloseProcessor.java
@@ -28,8 +28,8 @@ import org.apache.james.imap.message.request.CloseRequest;
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.MessageManager;
-import org.apache.james.mailbox.MessageManager.MailboxMetaData.FetchGroup;
 import org.apache.james.mailbox.exception.MailboxException;
+import org.apache.james.mailbox.model.MailboxACL;
 import org.apache.james.mailbox.model.MessageRange;
 import org.apache.james.metrics.api.MetricFactory;
 import org.apache.james.util.MDCBuilder;
@@ -50,7 +50,7 @@ public class CloseProcessor extends AbstractMailboxProcessor<CloseRequest> {
             MessageManager mailbox = getSelectedMailbox(session)
                 .orElseThrow(() -> new MailboxException("Session not in SELECTED state"));
             final MailboxSession mailboxSession = session.getMailboxSession();
-            if (mailbox.getMetaData(false, mailboxSession, FetchGroup.NO_COUNT).isWriteable()) {
+            if (getMailboxManager().hasRight(mailbox.getMailboxEntity(), MailboxACL.Right.PerformExpunge, mailboxSession)) {
                 mailbox.expunge(MessageRange.all(), mailboxSession);
                 session.deselect();
 
@@ -58,7 +58,6 @@ public class CloseProcessor extends AbstractMailboxProcessor<CloseRequest> {
                 //
                 // See http://www.rfc-editor.org/errata_search.php?rfc=5162
                 okComplete(request, responder);
-               
             }
 
         } catch (MailboxException e) {


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@james.apache.org
For additional commands, e-mail: notifications-help@james.apache.org