Repository: james-project
Updated Branches:
  refs/heads/master 2dd366d2a -> 1f6b54942


JAMES-1945 Take into account the FetchType before composing with attachments


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

Branch: refs/heads/master
Commit: d0cbaf12580e914ceff2b2090e99eca206f18b5a
Parents: 2dd366d
Author: Benoit Tellier <btell...@linagora.com>
Authored: Mon Feb 20 08:22:05 2017 +0700
Committer: Benoit Tellier <btell...@linagora.com>
Committed: Mon Feb 20 17:39:55 2017 +0700

----------------------------------------------------------------------
 .../cassandra/mail/CassandraMessageMapper.java  | 22 +++++++++++++-------
 1 file changed, 14 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/d0cbaf12/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageMapper.java
----------------------------------------------------------------------
diff --git 
a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageMapper.java
 
b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageMapper.java
index c36d9a0..c43f26b 100644
--- 
a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageMapper.java
+++ 
b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageMapper.java
@@ -162,14 +162,20 @@ public class CassandraMessageMapper implements 
MessageMapper {
     }
 
     private Stream<SimpleMailboxMessage> 
retrieveMessages(List<ComposedMessageIdWithMetaData> messageIds, FetchType 
fetchType, Optional<Integer> limit) {
-        return messageDAO.retrieveMessages(messageIds, fetchType, limit).join()
-            .map(pair -> Pair.of(pair.getLeft(), new 
AttachmentLoader(attachmentMapper)
-                .getAttachments(pair.getRight()
-                    .collect(Guavate.toImmutableList()))))
-            .map(Throwing.function(pair -> pair.getLeft()
-                .toMailboxMessage(pair.getRight()
-                    .stream()
-                    .collect(Guavate.toImmutableList()))));
+        Stream<Pair<CassandraMessageDAO.MessageWithoutAttachment, 
Stream<CassandraMessageDAO.MessageAttachmentRepresentation>>>
+            messageRepresentions = messageDAO.retrieveMessages(messageIds, 
fetchType, limit).join();
+        if (fetchType == FetchType.Body || fetchType == FetchType.Full) {
+            return messageRepresentions
+                .map(pair -> Pair.of(pair.getLeft(), new 
AttachmentLoader(attachmentMapper)
+                    .getAttachments(pair.getRight()
+                        .collect(Guavate.toImmutableList()))))
+                .map(Throwing.function(pair -> pair.getLeft()
+                    .toMailboxMessage(pair.getRight()
+                        .stream()
+                        .collect(Guavate.toImmutableList()))));
+        } else {
+            return messageRepresentions.map(pair -> 
pair.getLeft().toMailboxMessage(ImmutableList.of()));
+        }
     }
 
     @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