JAMES-2181 Rely on Exception::message in mailboxNotFoundException
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/81c89073 Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/81c89073 Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/81c89073 Branch: refs/heads/master Commit: 81c890734161a52221d5ff14b1a2e1dd30a2e720 Parents: 820f491 Author: benwa <btell...@linagora.com> Authored: Wed Oct 11 10:27:38 2017 +0700 Committer: benwa <btell...@linagora.com> Committed: Mon Oct 16 09:42:16 2017 +0700 ---------------------------------------------------------------------- .../exception/MailboxNotFoundException.java | 21 +++++++------------- .../cassandra/mail/CassandraMailboxMapper.java | 2 +- .../mailbox/hbase/mail/HBaseMailboxMapper.java | 2 +- .../mailbox/jcr/mail/JCRMailboxMapper.java | 2 +- .../mailbox/jpa/mail/JPAMailboxMapper.java | 2 +- .../maildir/mail/MaildirMailboxMapper.java | 4 ++-- .../inmemory/InMemoryMessageIdManager.java | 9 +++++---- .../inmemory/mail/InMemoryMailboxMapper.java | 2 +- .../mailbox/store/StoreMailboxManager.java | 6 +++--- .../imap/processor/DeleteACLProcessorTest.java | 2 +- .../imap/processor/GetACLProcessorTest.java | 2 +- .../imap/processor/ListRightsProcessorTest.java | 2 +- .../imap/processor/SetACLProcessorTest.java | 2 +- .../methods/SetMailboxesUpdateProcessor.java | 2 +- .../methods/SetMessagesCreationProcessor.java | 5 +++-- 15 files changed, 30 insertions(+), 35 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/james-project/blob/81c89073/mailbox/api/src/main/java/org/apache/james/mailbox/exception/MailboxNotFoundException.java ---------------------------------------------------------------------- diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/exception/MailboxNotFoundException.java b/mailbox/api/src/main/java/org/apache/james/mailbox/exception/MailboxNotFoundException.java index 2e538cb..9c96733 100644 --- a/mailbox/api/src/main/java/org/apache/james/mailbox/exception/MailboxNotFoundException.java +++ b/mailbox/api/src/main/java/org/apache/james/mailbox/exception/MailboxNotFoundException.java @@ -19,6 +19,7 @@ package org.apache.james.mailbox.exception; +import org.apache.james.mailbox.model.MailboxId; import org.apache.james.mailbox.model.MailboxPath; /** @@ -29,14 +30,16 @@ public class MailboxNotFoundException extends MailboxException { private static final long serialVersionUID = -8493370806722264915L; - private final String mailboxName; - /** * @param mailboxName * name of the mailbox, not null */ - public MailboxNotFoundException(String mailboxName) { - this.mailboxName = mailboxName; + public MailboxNotFoundException(String message) { + super(message); + } + + public MailboxNotFoundException(MailboxId mailboxId) { + super(mailboxId.serialize() + " can not be found"); } /** @@ -45,16 +48,6 @@ public class MailboxNotFoundException extends MailboxException { */ public MailboxNotFoundException(MailboxPath mailboxPath) { super(mailboxPath + " can not be found"); - this.mailboxName = mailboxPath.toString(); - } - - /** - * Gets the name of the mailbox which cannot be found. - * - * @return name or null when only mailbox ID is known - */ - public final String getMailboxName() { - return mailboxName; } } http://git-wip-us.apache.org/repos/asf/james-project/blob/81c89073/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapper.java ---------------------------------------------------------------------- diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapper.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapper.java index e8c66fa..4765250 100644 --- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapper.java +++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapper.java @@ -114,7 +114,7 @@ public class CassandraMailboxMapper implements MailboxMapper { CassandraId mailboxId = (CassandraId) id; return retrieveMailbox(mailboxId) .join() - .orElseThrow(() -> new MailboxNotFoundException(id.serialize())); + .orElseThrow(() -> new MailboxNotFoundException(id)); } private CompletableFuture<Optional<SimpleMailbox>> retrieveMailbox(CassandraId mailboxId) { http://git-wip-us.apache.org/repos/asf/james-project/blob/81c89073/mailbox/hbase/src/main/java/org/apache/james/mailbox/hbase/mail/HBaseMailboxMapper.java ---------------------------------------------------------------------- diff --git a/mailbox/hbase/src/main/java/org/apache/james/mailbox/hbase/mail/HBaseMailboxMapper.java b/mailbox/hbase/src/main/java/org/apache/james/mailbox/hbase/mail/HBaseMailboxMapper.java index ec2e0bc..77244e2 100644 --- a/mailbox/hbase/src/main/java/org/apache/james/mailbox/hbase/mail/HBaseMailboxMapper.java +++ b/mailbox/hbase/src/main/java/org/apache/james/mailbox/hbase/mail/HBaseMailboxMapper.java @@ -138,7 +138,7 @@ public class HBaseMailboxMapper extends HBaseNonTransactionalMapper implements M Get get = new Get(mailboxId.toBytes()); Result result = mailboxes.get(get); if (result == null) { - throw new MailboxNotFoundException(mailboxId.serialize()); + throw new MailboxNotFoundException(mailboxId); } return mailboxFromResult(result); } catch (IOException ex) { http://git-wip-us.apache.org/repos/asf/james-project/blob/81c89073/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/JCRMailboxMapper.java ---------------------------------------------------------------------- diff --git a/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/JCRMailboxMapper.java b/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/JCRMailboxMapper.java index 3d0661d..4eeb0f2 100644 --- a/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/JCRMailboxMapper.java +++ b/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/JCRMailboxMapper.java @@ -118,7 +118,7 @@ public class JCRMailboxMapper extends AbstractJCRScalingMapper implements Mailbo Node node = getSession().getNodeByIdentifier(id.serialize()); return new JCRMailbox(node); } catch (PathNotFoundException e) { - throw new MailboxNotFoundException(id.serialize()); + throw new MailboxNotFoundException(id); } catch (RepositoryException e) { throw new MailboxException("Unable to find mailbox " + id.serialize(), e); } http://git-wip-us.apache.org/repos/asf/james-project/blob/81c89073/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAMailboxMapper.java ---------------------------------------------------------------------- diff --git a/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAMailboxMapper.java b/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAMailboxMapper.java index d928410..d103528 100644 --- a/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAMailboxMapper.java +++ b/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAMailboxMapper.java @@ -138,7 +138,7 @@ public class JPAMailboxMapper extends JPATransactionalMapper implements MailboxM .setParameter("idParam", mailboxId.getRawId()) .getSingleResult(); } catch (NoResultException e) { - throw new MailboxNotFoundException(mailboxId.serialize()); + throw new MailboxNotFoundException(mailboxId); } catch (PersistenceException e) { throw new MailboxException("Search of mailbox " + mailboxId.serialize() + " failed", e); } http://git-wip-us.apache.org/repos/asf/james-project/blob/81c89073/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMailboxMapper.java ---------------------------------------------------------------------- diff --git a/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMailboxMapper.java b/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMailboxMapper.java index 7684a1f..fe0348a 100644 --- a/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMailboxMapper.java +++ b/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMailboxMapper.java @@ -92,7 +92,7 @@ public class MaildirMailboxMapper extends NonTransactionalMapper implements Mail } } else - throw new MailboxNotFoundException(mailbox.getName()); + throw new MailboxNotFoundException(mailbox.generateAssociatedPath()); } private void delete(File...files) { @@ -295,7 +295,7 @@ public class MaildirMailboxMapper extends NonTransactionalMapper implements Mail try { return mailboxCache.get(mailboxId.getRawId()); } catch (IndexOutOfBoundsException e) { - throw new MailboxNotFoundException(String.valueOf(mailboxId)); + throw new MailboxNotFoundException(mailboxId); } } http://git-wip-us.apache.org/repos/asf/james-project/blob/81c89073/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/InMemoryMessageIdManager.java ---------------------------------------------------------------------- diff --git a/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/InMemoryMessageIdManager.java b/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/InMemoryMessageIdManager.java index e009c84..698b107 100644 --- a/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/InMemoryMessageIdManager.java +++ b/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/InMemoryMessageIdManager.java @@ -156,11 +156,12 @@ public class InMemoryMessageIdManager implements MessageIdManager { } private void filterOnMailboxSession(List<MailboxId> mailboxIds, MailboxSession mailboxSession) throws MailboxNotFoundException { - boolean isForbidden = mailboxIds.stream() - .anyMatch(findMailboxBelongsToAnotherSession(mailboxSession)); + Optional<MailboxId> mailboxForbidden = mailboxIds.stream() + .filter(findMailboxBelongsToAnotherSession(mailboxSession)) + .findAny(); - if (isForbidden) { - throw new MailboxNotFoundException("Mailbox does not belong to session"); + if (mailboxForbidden.isPresent()) { + throw new MailboxNotFoundException("Mailbox " + mailboxForbidden.get() + " does not belong to session"); } } http://git-wip-us.apache.org/repos/asf/james-project/blob/81c89073/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMailboxMapper.java ---------------------------------------------------------------------- diff --git a/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMailboxMapper.java b/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMailboxMapper.java index 5270154..deca945 100644 --- a/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMailboxMapper.java +++ b/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMailboxMapper.java @@ -80,7 +80,7 @@ public class InMemoryMailboxMapper implements MailboxMapper { return new SimpleMailbox(mailbox); } } - throw new MailboxNotFoundException(mailboxId.serialize()); + throw new MailboxNotFoundException(mailboxId); } /** http://git-wip-us.apache.org/repos/asf/james-project/blob/81c89073/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java ---------------------------------------------------------------------- diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java index b7c94f7..eec1788 100644 --- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java +++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java @@ -517,12 +517,12 @@ public class StoreMailboxManager implements MailboxManager { if (mailboxRow == null) { LOGGER.info("Mailbox '" + mailboxId.serialize() + "' not found."); - throw new MailboxNotFoundException(mailboxId.serialize()); + throw new MailboxNotFoundException(mailboxId); } if (! assertUserHasAccessTo(mailboxRow, session)) { LOGGER.info("Mailbox '" + mailboxId.serialize() + "' does not belong to user '" + session.getUser() + "' but to '" + mailboxRow.getUser()); - throw new MailboxNotFoundException(mailboxId.serialize()); + throw new MailboxNotFoundException(mailboxId); } LOGGER.debug("Loaded mailbox " + mailboxId.serialize()); @@ -588,7 +588,7 @@ public class StoreMailboxManager implements MailboxManager { Mailbox mailbox = mapper.execute((Mapper.Transaction<Mailbox>) () -> { final Mailbox mailbox1 = mapper.findMailboxByPath(mailboxPath); if (mailbox1 == null) { - throw new MailboxNotFoundException("Mailbox not found"); + throw new MailboxNotFoundException(mailboxPath); } // We need to create a copy of the mailbox as maybe we can not refer to the real http://git-wip-us.apache.org/repos/asf/james-project/blob/81c89073/protocols/imap/src/test/java/org/apache/james/imap/processor/DeleteACLProcessorTest.java ---------------------------------------------------------------------- diff --git a/protocols/imap/src/test/java/org/apache/james/imap/processor/DeleteACLProcessorTest.java b/protocols/imap/src/test/java/org/apache/james/imap/processor/DeleteACLProcessorTest.java index 52c28ee..4228736 100644 --- a/protocols/imap/src/test/java/org/apache/james/imap/processor/DeleteACLProcessorTest.java +++ b/protocols/imap/src/test/java/org/apache/james/imap/processor/DeleteACLProcessorTest.java @@ -168,7 +168,7 @@ public class DeleteACLProcessorTest { Expectations expectations = prepareRightsExpectations(); expectations.allowing(mailboxManagerStub).getMailbox(expectations.with(Expectations.any(MailboxPath.class)), expectations.with(Expectations.any(MailboxSession.class))); - expectations.will(Expectations.throwException(new MailboxNotFoundException(MAILBOX_NAME))); + expectations.will(Expectations.throwException(new MailboxNotFoundException(path))); mockery.checking(expectations); http://git-wip-us.apache.org/repos/asf/james-project/blob/81c89073/protocols/imap/src/test/java/org/apache/james/imap/processor/GetACLProcessorTest.java ---------------------------------------------------------------------- diff --git a/protocols/imap/src/test/java/org/apache/james/imap/processor/GetACLProcessorTest.java b/protocols/imap/src/test/java/org/apache/james/imap/processor/GetACLProcessorTest.java index d7c3e5f..40c47f0 100644 --- a/protocols/imap/src/test/java/org/apache/james/imap/processor/GetACLProcessorTest.java +++ b/protocols/imap/src/test/java/org/apache/james/imap/processor/GetACLProcessorTest.java @@ -164,7 +164,7 @@ public class GetACLProcessorTest { Expectations expectations = prepareRightsExpectations(); expectations.allowing(mailboxManagerStub).getMailbox(expectations.with(Expectations.any(MailboxPath.class)), expectations.with(Expectations.any(MailboxSession.class))); - expectations.will(Expectations.throwException(new MailboxNotFoundException(MAILBOX_NAME))); + expectations.will(Expectations.throwException(new MailboxNotFoundException(path))); mockery.checking(expectations); http://git-wip-us.apache.org/repos/asf/james-project/blob/81c89073/protocols/imap/src/test/java/org/apache/james/imap/processor/ListRightsProcessorTest.java ---------------------------------------------------------------------- diff --git a/protocols/imap/src/test/java/org/apache/james/imap/processor/ListRightsProcessorTest.java b/protocols/imap/src/test/java/org/apache/james/imap/processor/ListRightsProcessorTest.java index f09b679..d14c900 100644 --- a/protocols/imap/src/test/java/org/apache/james/imap/processor/ListRightsProcessorTest.java +++ b/protocols/imap/src/test/java/org/apache/james/imap/processor/ListRightsProcessorTest.java @@ -171,7 +171,7 @@ public class ListRightsProcessorTest { Expectations expectations = prepareRightsExpectations(); expectations.allowing(mailboxManagerStub).getMailbox(expectations.with(Expectations.any(MailboxPath.class)), expectations.with(Expectations.any(MailboxSession.class))); - expectations.will(Expectations.throwException(new MailboxNotFoundException(MAILBOX_NAME))); + expectations.will(Expectations.throwException(new MailboxNotFoundException(path))); mockery.checking(expectations); http://git-wip-us.apache.org/repos/asf/james-project/blob/81c89073/protocols/imap/src/test/java/org/apache/james/imap/processor/SetACLProcessorTest.java ---------------------------------------------------------------------- diff --git a/protocols/imap/src/test/java/org/apache/james/imap/processor/SetACLProcessorTest.java b/protocols/imap/src/test/java/org/apache/james/imap/processor/SetACLProcessorTest.java index 5c88a0d..942cc69 100644 --- a/protocols/imap/src/test/java/org/apache/james/imap/processor/SetACLProcessorTest.java +++ b/protocols/imap/src/test/java/org/apache/james/imap/processor/SetACLProcessorTest.java @@ -196,7 +196,7 @@ public class SetACLProcessorTest { Expectations expectations = prepareRightsExpectations(); expectations.allowing(mailboxManagerStub).getMailbox(expectations.with(Expectations.any(MailboxPath.class)), expectations.with(Expectations.any(MailboxSession.class))); - expectations.will(Expectations.throwException(new MailboxNotFoundException(MAILBOX_NAME))); + expectations.will(Expectations.throwException(new MailboxNotFoundException(path))); mockery.checking(expectations); http://git-wip-us.apache.org/repos/asf/james-project/blob/81c89073/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMailboxesUpdateProcessor.java ---------------------------------------------------------------------- diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMailboxesUpdateProcessor.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMailboxesUpdateProcessor.java index c08f335..634c73a 100644 --- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMailboxesUpdateProcessor.java +++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMailboxesUpdateProcessor.java @@ -154,7 +154,7 @@ public class SetMailboxesUpdateProcessor implements SetMailboxesProcessor { .id(mailboxId) .session(mailboxSession) .build() - .orElseThrow(() -> new MailboxNotFoundException(mailboxId.serialize())); + .orElseThrow(() -> new MailboxNotFoundException(mailboxId)); } private void validateMailboxName(MailboxUpdateRequest updateRequest, MailboxSession mailboxSession) throws MailboxNameException { http://git-wip-us.apache.org/repos/asf/james-project/blob/81c89073/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMessagesCreationProcessor.java ---------------------------------------------------------------------- diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMessagesCreationProcessor.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMessagesCreationProcessor.java index d89b050..0b2ce96 100644 --- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMessagesCreationProcessor.java +++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMessagesCreationProcessor.java @@ -20,12 +20,14 @@ package org.apache.james.jmap.methods; import static org.apache.james.jmap.methods.Method.JMAP_PREFIX; + import java.io.IOException; import java.util.Date; import java.util.List; import java.util.Optional; import java.util.Set; import java.util.stream.Collectors; + import javax.inject.Inject; import javax.mail.Flags; import javax.mail.MessagingException; @@ -69,7 +71,6 @@ import org.apache.james.metrics.api.MetricFactory; import org.apache.james.metrics.api.TimeMetric; import org.apache.james.util.OptionalUtils; import org.apache.mailet.Mail; - import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -164,7 +165,7 @@ public class SetMessagesCreationProcessor implements SetMessagesProcessor { responseBuilder.notCreated(create.getCreationId(), SetError.builder() .type("error") - .description(e.getMailboxName() + " can't be found") + .description(e.getMessage()) .build()); } catch (MailboxException | MessagingException e) { --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org