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