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 bt...@apache.org on 2017/03/22 00:12:35 UTC

[2/7] james-project git commit: JAMES-1968 Improve a bit code in MailboxMapper

JAMES-1968 Improve a bit code in MailboxMapper


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

Branch: refs/heads/master
Commit: 01e5e4b11091afafa1a9d1094348e87de96bc396
Parents: 73c5554
Author: benwa <bt...@linagora.com>
Authored: Thu Mar 16 22:03:27 2017 +0700
Committer: benwa <bt...@linagora.com>
Committed: Wed Mar 22 07:10:55 2017 +0700

----------------------------------------------------------------------
 .../cassandra/mail/CassandraMailboxMapper.java   | 19 +++++++------------
 1 file changed, 7 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/01e5e4b1/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 f863523..6c0d484 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
@@ -141,18 +141,13 @@ public class CassandraMailboxMapper implements MailboxMapper {
 
     private CompletableFuture<Boolean> trySave(SimpleMailbox cassandraMailbox, CassandraId cassandraId) {
         return mailboxPathDAO.save(cassandraMailbox.generateAssociatedPath(), cassandraId)
-            .thenCompose(result -> {
-                if (result) {
-                    return mailboxDAO.retrieveMailbox(cassandraId)
-                        .thenCompose(optional -> CompletableFuture
-                            .allOf(optional
-                                    .map(storedMailbox -> mailboxPathDAO.delete(storedMailbox.generateAssociatedPath()))
-                                    .orElse(CompletableFuture.completedFuture(null)),
-                                mailboxDAO.save(cassandraMailbox))
-                            .thenApply(any -> result));
-                }
-                return CompletableFuture.completedFuture(result);
-            });
+            .thenCompose(CompletableFutureUtil.composeIfTrue(
+                () -> mailboxDAO.retrieveMailbox(cassandraId)
+                    .thenCompose(optional -> CompletableFuture
+                        .allOf(optional
+                                .map(storedMailbox -> mailboxPathDAO.delete(storedMailbox.generateAssociatedPath()))
+                                .orElse(CompletableFuture.completedFuture(null)),
+                            mailboxDAO.save(cassandraMailbox)))));
     }
 
     private void manageException(CompletionException e) throws MailboxException {


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