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

Reply via email to