You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by ad...@apache.org on 2017/11/16 13:20:34 UTC

[7/8] james-project git commit: JAMES-2219 Do only one store read when resolving parent path

JAMES-2219 Do only one store read when resolving parent path


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/35663c29
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/35663c29
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/35663c29

Branch: refs/heads/master
Commit: 35663c29b523babc1ad96639644df8235694f4bc
Parents: 9c14a96
Author: benwa <bt...@linagora.com>
Authored: Thu Nov 16 10:18:56 2017 +0700
Committer: Antoine Duprat <ad...@linagora.com>
Committed: Thu Nov 16 14:19:17 2017 +0100

----------------------------------------------------------------------
 .../jmap/methods/SetMailboxesCreationProcessor.java      | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/35663c29/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMailboxesCreationProcessor.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMailboxesCreationProcessor.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMailboxesCreationProcessor.java
index 39695b1..4dfa901 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMailboxesCreationProcessor.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMailboxesCreationProcessor.java
@@ -51,6 +51,7 @@ import org.apache.james.mailbox.model.MailboxId.Factory;
 import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.metrics.api.MetricFactory;
 import org.apache.james.metrics.api.TimeMetric;
+import org.apache.james.util.OptionalUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -189,15 +190,15 @@ public class SetMailboxesCreationProcessor implements SetMailboxesProcessor {
     }
 
     private MailboxPath getMailboxPath(Map<MailboxCreationId, MailboxId> creationIdsToCreatedMailboxId, MailboxSession mailboxSession, MailboxCreationId parentId) throws MailboxException {
-        Optional<MailboxId> mailboxId = getMailboxIdFromCreationId(parentId);
-        Optional<MailboxId> mailboxIdFromCreationId = Optional.ofNullable(creationIdsToCreatedMailboxId.get(parentId));
+        Optional<MailboxId> mailboxId = OptionalUtils.or(
+            readCreationIdAsMailboxId(parentId),
+            Optional.ofNullable(creationIdsToCreatedMailboxId.get(parentId)));
 
         return getMailboxPathFromId(mailboxId, mailboxSession)
-            .orElseGet(() -> getMailboxPathFromId(mailboxIdFromCreationId, mailboxSession)
-                .orElseThrow(() -> new MailboxParentNotFoundException(parentId)));
+                .orElseThrow(() -> new MailboxParentNotFoundException(parentId));
     }
 
-    private Optional<MailboxId> getMailboxIdFromCreationId(MailboxCreationId creationId) {
+    private Optional<MailboxId> readCreationIdAsMailboxId(MailboxCreationId creationId) {
         try {
             return Optional.of(mailboxIdFactory.fromString(creationId.getCreationId()));
         } catch (Exception e) {


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