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 <[email protected]> Authored: Thu Nov 16 10:18:56 2017 +0700 Committer: Antoine Duprat <[email protected]> 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: [email protected] For additional commands, e-mail: [email protected]
