This is an automated email from the ASF dual-hosted git repository. rcordier pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/james-project.git
commit 3bdff207754d475f17d82842544e3237b33254e8 Author: Benoit Tellier <btell...@linagora.com> AuthorDate: Fri Dec 6 11:18:51 2019 +0700 [Refactoring] Remove MailboxManager::logout(session, force) No implementation currently uses the force parameter, making it useless. MailboxManager::logout(session) should be used instead --- .../org/apache/james/mailbox/MailboxManager.java | 28 ---------------------- .../mailbox/MailboxManagerStressContract.java | 4 ++-- .../apache/james/mailbox/MailboxManagerTest.java | 8 +++---- .../apache/james/mailbox/mock/DataProvisioner.java | 8 +++---- .../mailbox/tools/copier/MailboxCopierTest.java | 3 +-- .../apache/james/mpt/host/JamesImapHostSystem.java | 4 ++-- .../james/imap/processor/LogoutProcessor.java | 17 ++++--------- .../imap/processor/SystemMessageProcessor.java | 13 +++------- .../org/apache/james/modules/MailboxProbeImpl.java | 6 +---- .../adapter/mailbox/MailboxManagerManagement.java | 6 +---- .../mailets/delivery/MailboxAppender.java | 6 +---- .../james/pop3server/mailbox/MailboxAdapter.java | 4 +--- 12 files changed, 24 insertions(+), 83 deletions(-) diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxManager.java b/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxManager.java index b1c7134..8ab0941 100644 --- a/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxManager.java +++ b/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxManager.java @@ -251,34 +251,6 @@ public interface MailboxManager extends RequestAware, RightManager, MailboxAnnot } /** - * <p> - * Logs the session out, freeing any resources. Clients who open session - * should make best efforts to call this when the session is closed. - * </p> - * <p> - * Note that clients may not always be able to call logout (whether forced - * or not). Mailboxes that create sessions which are expensive to maintain - * <code>MUST</code> retain a reference and periodically check - * {@link MailboxSession#isOpen()}. - * </p> - * <p> - * Note that implementations much be aware that it is possible that this - * method may be called more than once with the same session. - * </p> - * - * @param session - * not null - * @param force - * true when the session logout is forced by premature connection - * termination - * @throws MailboxException - * when logout fails - */ - default void logout(MailboxSession session, boolean force) throws MailboxException { - logout(session); - } - - /** * Return a unmodifiable {@link List} of {@link MailboxPath} objects */ List<MailboxPath> list(MailboxSession session) throws MailboxException; diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxManagerStressContract.java b/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxManagerStressContract.java index 0112994..3bf6d8f 100644 --- a/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxManagerStressContract.java +++ b/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxManagerStressContract.java @@ -71,7 +71,7 @@ public interface MailboxManagerStressContract<T extends MailboxManager> { uList.add(u); }, new MailboxIdRegistrationKey(mailboxId)); getManager().endProcessingRequest(session); - getManager().logout(session, false); + getManager().logout(session); final AtomicBoolean fail = new AtomicBoolean(false); final ConcurrentHashMap<MessageUid, Object> uids = new ConcurrentHashMap<>(); @@ -100,7 +100,7 @@ public interface MailboxManagerStressContract<T extends MailboxManager> { fail.set(true); } getManager().endProcessingRequest(mailboxSession); - getManager().logout(mailboxSession, false); + getManager().logout(mailboxSession); } catch (Exception e) { e.printStackTrace(); fail.set(true); diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxManagerTest.java b/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxManagerTest.java index 91bd97f..79a9fb0 100644 --- a/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxManagerTest.java +++ b/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxManagerTest.java @@ -144,8 +144,8 @@ public abstract class MailboxManagerTest<T extends MailboxManager> { } @AfterEach - void tearDown() throws Exception { - mailboxManager.logout(session, false); + void tearDown() { + mailboxManager.logout(session); mailboxManager.endProcessingRequest(session); } @@ -1591,11 +1591,11 @@ public abstract class MailboxManagerTest<T extends MailboxManager> { } @Test - void closingSessionShouldWork() throws Exception { + void closingSessionShouldWork() { session = mailboxManager.createSystemSession(USER_1); mailboxManager.startProcessingRequest(session); - mailboxManager.logout(session, false); + mailboxManager.logout(session); mailboxManager.endProcessingRequest(session); assertThat(session.isOpen()).isFalse(); diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/mock/DataProvisioner.java b/mailbox/api/src/test/java/org/apache/james/mailbox/mock/DataProvisioner.java index ec59bee..e25ed5c 100644 --- a/mailbox/api/src/test/java/org/apache/james/mailbox/mock/DataProvisioner.java +++ b/mailbox/api/src/test/java/org/apache/james/mailbox/mock/DataProvisioner.java @@ -30,8 +30,6 @@ import org.apache.james.mailbox.exception.MailboxException; import org.apache.james.mailbox.model.MailboxConstants; import org.apache.james.mailbox.model.MailboxPath; -import com.github.fge.lambdas.Throwing; - public class DataProvisioner { /** @@ -81,10 +79,10 @@ public class DataProvisioner { IntStream.range(0, USER_COUNT) .mapToObj(i -> "user" + i + "@" + domain) .map(Username::of) - .forEach(Throwing.consumer(user -> provisionUser(mailboxManager, user))); + .forEach(user -> provisionUser(mailboxManager, user)); } - private static void provisionUser(MailboxManager mailboxManager, Username user) throws MailboxException { + private static void provisionUser(MailboxManager mailboxManager, Username user) { MailboxSession mailboxSession = mailboxManager.createSystemSession(user); mailboxManager.startProcessingRequest(mailboxSession); @@ -96,7 +94,7 @@ public class DataProvisioner { .forEach(name -> createSubSubMailboxes(mailboxManager, mailboxSession, name)); mailboxManager.endProcessingRequest(mailboxSession); - mailboxManager.logout(mailboxSession, true); + mailboxManager.logout(mailboxSession); } private static void createSubSubMailboxes(MailboxManager mailboxManager,MailboxSession mailboxSession, String subFolderName) { diff --git a/mailbox/tools/copier/src/test/java/org/apache/james/mailbox/tools/copier/MailboxCopierTest.java b/mailbox/tools/copier/src/test/java/org/apache/james/mailbox/tools/copier/MailboxCopierTest.java index e51ce03..06dc53e 100644 --- a/mailbox/tools/copier/src/test/java/org/apache/james/mailbox/tools/copier/MailboxCopierTest.java +++ b/mailbox/tools/copier/src/test/java/org/apache/james/mailbox/tools/copier/MailboxCopierTest.java @@ -126,8 +126,7 @@ public class MailboxCopierTest { } mailboxManager.endProcessingRequest(mailboxSession); - mailboxManager.logout(mailboxSession, true); - + mailboxManager.logout(mailboxSession); } /** diff --git a/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/host/JamesImapHostSystem.java b/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/host/JamesImapHostSystem.java index d2a2270..2abd31d 100644 --- a/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/host/JamesImapHostSystem.java +++ b/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/host/JamesImapHostSystem.java @@ -104,7 +104,7 @@ public abstract class JamesImapHostSystem implements ImapHostSystem, GrantRights MailboxSession mailboxSession = mailboxManager.createSystemSession(mailboxPath.getUser()); mailboxManager.startProcessingRequest(mailboxSession); mailboxManager.createMailbox(mailboxPath, mailboxSession); - mailboxManager.logout(mailboxSession, true); + mailboxManager.logout(mailboxSession); mailboxManager.endProcessingRequest(mailboxSession); } @@ -119,7 +119,7 @@ public abstract class JamesImapHostSystem implements ImapHostSystem, GrantRights .rights(rights) .asAddition()), mailboxManager.createSystemSession(username)); - mailboxManager.logout(mailboxSession, true); + mailboxManager.logout(mailboxSession); mailboxManager.endProcessingRequest(mailboxSession); } diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/LogoutProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/LogoutProcessor.java index c6b9e8c..338f8f3 100644 --- a/protocols/imap/src/main/java/org/apache/james/imap/processor/LogoutProcessor.java +++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/LogoutProcessor.java @@ -22,14 +22,12 @@ package org.apache.james.imap.processor; import java.io.Closeable; import org.apache.james.imap.api.ImapSessionUtils; -import org.apache.james.imap.api.display.HumanReadableText; import org.apache.james.imap.api.message.response.StatusResponseFactory; import org.apache.james.imap.api.process.ImapProcessor; import org.apache.james.imap.api.process.ImapSession; import org.apache.james.imap.message.request.LogoutRequest; import org.apache.james.mailbox.MailboxManager; import org.apache.james.mailbox.MailboxSession; -import org.apache.james.mailbox.exception.MailboxException; import org.apache.james.metrics.api.MetricFactory; import org.apache.james.util.MDCBuilder; import org.slf4j.Logger; @@ -45,16 +43,11 @@ public class LogoutProcessor extends AbstractMailboxProcessor<LogoutRequest> { @Override protected void processRequest(LogoutRequest request, ImapSession session, Responder responder) { - final MailboxSession mailboxSession = ImapSessionUtils.getMailboxSession(session); - try { - getMailboxManager().logout(mailboxSession, false); - session.logout(); - bye(responder); - okComplete(request, responder); - } catch (MailboxException e) { - LOGGER.error("Logout failed for user {}", mailboxSession.getUser().asString(), e); - no(request, responder, HumanReadableText.GENERIC_FAILURE_DURING_PROCESSING); - } + MailboxSession mailboxSession = ImapSessionUtils.getMailboxSession(session); + getMailboxManager().logout(mailboxSession); + session.logout(); + bye(responder); + okComplete(request, responder); } @Override diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/SystemMessageProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/SystemMessageProcessor.java index 632210f..1584d3c 100644 --- a/protocols/imap/src/main/java/org/apache/james/imap/processor/SystemMessageProcessor.java +++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/SystemMessageProcessor.java @@ -28,7 +28,6 @@ import org.apache.james.imap.message.request.SystemMessage; import org.apache.james.imap.processor.base.AbstractChainedProcessor; import org.apache.james.mailbox.MailboxManager; import org.apache.james.mailbox.MailboxSession; -import org.apache.james.mailbox.exception.MailboxException; import org.apache.james.util.MDCBuilder; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -48,17 +47,13 @@ public class SystemMessageProcessor extends AbstractChainedProcessor<SystemMessa @Override protected void doProcess(SystemMessage message, Responder responder, ImapSession session) { - try { - switch (message) { + switch (message) { case FORCE_LOGOUT: forceLogout(session); break; default: LOGGER.info("Unknown system message {}", message); break; - } - } catch (MailboxException e) { - LOGGER.error("Cannot force logout", e); } } @@ -67,16 +62,14 @@ public class SystemMessageProcessor extends AbstractChainedProcessor<SystemMessa * * @param imapSession * not null - * @throws MailboxException - * when forced logout fails */ - private void forceLogout(ImapSession imapSession) throws MailboxException { + private void forceLogout(ImapSession imapSession) { final MailboxSession session = ImapSessionUtils.getMailboxSession(imapSession); if (session == null) { LOGGER.trace("No mailbox session so no force logout needed"); } else { session.close(); - mailboxManager.logout(session, true); + mailboxManager.logout(session); } } diff --git a/server/container/guice/mailbox/src/main/java/org/apache/james/modules/MailboxProbeImpl.java b/server/container/guice/mailbox/src/main/java/org/apache/james/modules/MailboxProbeImpl.java index 3f49929..18b3458 100644 --- a/server/container/guice/mailbox/src/main/java/org/apache/james/modules/MailboxProbeImpl.java +++ b/server/container/guice/mailbox/src/main/java/org/apache/james/modules/MailboxProbeImpl.java @@ -97,11 +97,7 @@ public class MailboxProbeImpl implements GuiceProbe, MailboxProbe { private void closeSession(MailboxSession session) { if (session != null) { mailboxManager.endProcessingRequest(session); - try { - mailboxManager.logout(session, true); - } catch (MailboxException e) { - throw new RuntimeException(e); - } + mailboxManager.logout(session); } } diff --git a/server/container/mailbox-jmx/src/main/java/org/apache/james/adapter/mailbox/MailboxManagerManagement.java b/server/container/mailbox-jmx/src/main/java/org/apache/james/adapter/mailbox/MailboxManagerManagement.java index dddfa29..cbbaa73 100644 --- a/server/container/mailbox-jmx/src/main/java/org/apache/james/adapter/mailbox/MailboxManagerManagement.java +++ b/server/container/mailbox-jmx/src/main/java/org/apache/james/adapter/mailbox/MailboxManagerManagement.java @@ -196,11 +196,7 @@ public class MailboxManagerManagement extends StandardMBean implements MailboxMa private void closeSession(MailboxSession session) { if (session != null) { mailboxManager.endProcessingRequest(session); - try { - mailboxManager.logout(session, true); - } catch (MailboxException e) { - LOGGER.error("Can not log session out", e); - } + mailboxManager.logout(session); } } diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/MailboxAppender.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/MailboxAppender.java index db0e89d..7719039 100644 --- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/MailboxAppender.java +++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/MailboxAppender.java @@ -102,11 +102,7 @@ public class MailboxAppender { private void closeProcessing(MailboxSession session) throws MessagingException { session.close(); try { - try { - mailboxManager.logout(session, true); - } catch (MailboxException e) { - throw new MessagingException("Can logout from mailbox", e); - } + mailboxManager.logout(session); } finally { mailboxManager.endProcessingRequest(session); } diff --git a/server/protocols/protocols-pop3/src/main/java/org/apache/james/pop3server/mailbox/MailboxAdapter.java b/server/protocols/protocols-pop3/src/main/java/org/apache/james/pop3server/mailbox/MailboxAdapter.java index cffb653..a1234d0 100644 --- a/server/protocols/protocols-pop3/src/main/java/org/apache/james/pop3server/mailbox/MailboxAdapter.java +++ b/server/protocols/protocols-pop3/src/main/java/org/apache/james/pop3server/mailbox/MailboxAdapter.java @@ -166,9 +166,7 @@ public class MailboxAdapter implements Mailbox { @Override public void close() throws IOException { try { - mailboxManager.logout(session, true); - } catch (MailboxException e) { - throw new IOException("Unable to close mailbox", e); + mailboxManager.logout(session); } finally { mailboxManager.endProcessingRequest(session); } --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org