This is an automated email from the ASF dual-hosted git repository.

btellier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git

commit a26512a2ba9cff835aebfaf357017840bef1d6b7
Author: Benoit Tellier <[email protected]>
AuthorDate: Sun Apr 12 16:48:20 2020 +0700

    JAMES-3148 ACL mapper should not position default value
---
 .../apache/james/mailbox/cassandra/mail/CassandraACLMapper.java  | 3 +--
 .../james/mailbox/cassandra/mail/CassandraMailboxMapper.java     | 9 +++++++--
 .../mailbox/cassandra/mail/task/MailboxMergingTaskRunner.java    | 8 ++++++--
 .../james/mailbox/cassandra/mail/CassandraACLMapperTest.java     | 4 ++--
 4 files changed, 16 insertions(+), 8 deletions(-)

diff --git 
a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraACLMapper.java
 
b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraACLMapper.java
index 376cd0a..b04814c 100644
--- 
a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraACLMapper.java
+++ 
b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraACLMapper.java
@@ -112,8 +112,7 @@ public class CassandraACLMapper {
 
     public Mono<MailboxACL> getACL(CassandraId cassandraId) {
         return getStoredACLRow(cassandraId)
-            .map(row -> getAcl(cassandraId, row))
-            .defaultIfEmpty(MailboxACL.EMPTY);
+            .map(row -> getAcl(cassandraId, row));
     }
 
     private MailboxACL getAcl(CassandraId cassandraId, Row row) {
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 05d3339..a0b4fd4 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
@@ -159,12 +159,17 @@ public class CassandraMailboxMapper implements 
MailboxMapper {
     }
 
     private Mono<Mailbox> retrieveMailbox(CassandraId mailboxId) {
-        Mono<MailboxACL> acl = cassandraACLMapper.getACL(mailboxId);
+        Mono<MailboxACL> acl = retrieveAcl(mailboxId);
         Mono<Mailbox> simpleMailbox = mailboxDAO.retrieveMailbox(mailboxId);
 
         return acl.zipWith(simpleMailbox, this::addAcl);
     }
 
+    private Mono<MailboxACL> retrieveAcl(CassandraId mailboxId) {
+        return cassandraACLMapper.getACL(mailboxId)
+            .defaultIfEmpty(MailboxACL.EMPTY);
+    }
+
     private Mailbox addAcl(MailboxACL acl, Mailbox mailbox) {
         mailbox.setACL(acl);
         return mailbox;
@@ -302,7 +307,7 @@ public class CassandraMailboxMapper implements 
MailboxMapper {
 
     private Mono<Mailbox> toMailboxWithAcl(Mailbox mailbox) {
         CassandraId cassandraId = (CassandraId) mailbox.getMailboxId();
-        return cassandraACLMapper.getACL(cassandraId)
+        return retrieveAcl(cassandraId)
             .map(acl -> {
                 mailbox.setACL(acl);
                 return mailbox;
diff --git 
a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/task/MailboxMergingTaskRunner.java
 
b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/task/MailboxMergingTaskRunner.java
index 794c2e6..8e7c6e0 100644
--- 
a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/task/MailboxMergingTaskRunner.java
+++ 
b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/task/MailboxMergingTaskRunner.java
@@ -89,8 +89,12 @@ public class MailboxMergingTaskRunner {
 
     private void mergeRights(CassandraId oldMailboxId, CassandraId 
newMailboxId) {
         try {
-            MailboxACL oldAcl = 
cassandraACLMapper.getACL(oldMailboxId).block();
-            MailboxACL newAcl = 
cassandraACLMapper.getACL(newMailboxId).block();
+            MailboxACL oldAcl = cassandraACLMapper.getACL(oldMailboxId)
+                .defaultIfEmpty(MailboxACL.EMPTY)
+                .block();
+            MailboxACL newAcl = cassandraACLMapper.getACL(newMailboxId)
+                .defaultIfEmpty(MailboxACL.EMPTY)
+                .block();
             MailboxACL finalAcl = newAcl.union(oldAcl);
 
             cassandraACLMapper.setACL(newMailboxId, finalAcl);
diff --git 
a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraACLMapperTest.java
 
b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraACLMapperTest.java
index d6dafc1..f3f8b81 100644
--- 
a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraACLMapperTest.java
+++ 
b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraACLMapperTest.java
@@ -85,7 +85,7 @@ class CassandraACLMapperTest {
 
     @Test
     void retrieveACLWhenNoACLStoredShouldReturnEmptyACL() {
-        
assertThat(cassandraACLMapper.getACL(MAILBOX_ID).block()).isEqualTo(MailboxACL.EMPTY);
+        
assertThat(cassandraACLMapper.getACL(MAILBOX_ID).blockOptional()).isEmpty();
     }
 
     @Test
@@ -98,7 +98,7 @@ class CassandraACLMapperTest {
 
         cassandraACLMapper.delete(MAILBOX_ID).block();
 
-        
assertThat(cassandraACLMapper.getACL(MAILBOX_ID).block()).isEqualTo(MailboxACL.EMPTY);
+        
assertThat(cassandraACLMapper.getACL(MAILBOX_ID).blockOptional()).isEmpty();
     }
 
     @Test


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to