JAMES-1849 In Cassandra implementation rely on AnnotationKey for parent 
relationShip

if a key finished by char less than /, then the result was included

Hopefully, there is no Java char less than / so the bug could not be 
reproduced. Filtering here is then made more explicitly.


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

Branch: refs/heads/master
Commit: 31f1cdedd3bcc4fe6b35951b6dd85fa028f1e6b5
Parents: 4e059b1
Author: Benoit Tellier <btell...@linagora.com>
Authored: Tue Oct 25 18:26:49 2016 +0200
Committer: Benoit Tellier <btell...@linagora.com>
Committed: Thu Nov 3 15:26:07 2016 +0100

----------------------------------------------------------------------
 .../james/mailbox/cassandra/mail/CassandraAnnotationMapper.java | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/31f1cded/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraAnnotationMapper.java
----------------------------------------------------------------------
diff --git 
a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraAnnotationMapper.java
 
b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraAnnotationMapper.java
index db0a7c6..c77842f 100644
--- 
a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraAnnotationMapper.java
+++ 
b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraAnnotationMapper.java
@@ -127,13 +127,14 @@ public class CassandraAnnotationMapper extends 
NonTransactionalMapper implements
 
     private Stream<MailboxAnnotation> 
getAnnotationsByKeyWithAllDepth(CassandraId mailboxId, MailboxAnnotationKey 
key) {
         return 
CassandraUtils.convertToStream(session.execute(getStoredAnnotationsQueryLikeKey(mailboxId,
 key.asString())))
-            .map(this::toAnnotation);
+            .map(this::toAnnotation)
+            .filter(annotation -> 
key.isAncestorOrIsEqual(annotation.getKey()));
     }
 
     private Stream<MailboxAnnotation> 
getAnnotationsByKeyWithOneDepth(CassandraId mailboxId, MailboxAnnotationKey 
key) {
         return 
CassandraUtils.convertToStream(session.execute(getStoredAnnotationsQueryLikeKey(mailboxId,
 key.asString())))
             .map(this::toAnnotation)
-            .filter(annotation -> key.isParentOf(annotation.getKey()));
+            .filter(annotation -> key.isParentOrIsEqual(annotation.getKey()));
     }
 
     @Override


---------------------------------------------------------------------
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