You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@james.apache.org by bt...@apache.org on 2022/03/15 02:00:22 UTC
[james-project] 04/10: JAMES-3720 CassandraMailRepository should not duplicate mime message
This is an automated email from the ASF dual-hosted git repository.
btellier pushed a commit to branch 3.7.x
in repository https://gitbox.apache.org/repos/asf/james-project.git
commit 0789f9ce2df51ac55bd855ca67e55bc08a09f5ed
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Fri Mar 4 18:13:47 2022 +0700
JAMES-3720 CassandraMailRepository should not duplicate mime message
(cherry picked from commit 387e81d4b6f2cf69f472856d722f6b3b3ddb7c28)
---
.../cassandra/CassandraMailRepository.java | 18 +++++++++++++++---
1 file changed, 15 insertions(+), 3 deletions(-)
diff --git a/server/mailrepository/mailrepository-cassandra/src/main/java/org/apache/james/mailrepository/cassandra/CassandraMailRepository.java b/server/mailrepository/mailrepository-cassandra/src/main/java/org/apache/james/mailrepository/cassandra/CassandraMailRepository.java
index fce9b7c..1c0abc6 100644
--- a/server/mailrepository/mailrepository-cassandra/src/main/java/org/apache/james/mailrepository/cassandra/CassandraMailRepository.java
+++ b/server/mailrepository/mailrepository-cassandra/src/main/java/org/apache/james/mailrepository/cassandra/CassandraMailRepository.java
@@ -37,8 +37,12 @@ import org.apache.james.mailrepository.api.MailKey;
import org.apache.james.mailrepository.api.MailRepository;
import org.apache.james.mailrepository.api.MailRepositoryUrl;
import org.apache.james.mailrepository.cassandra.CassandraMailRepositoryMailDaoV2.MailDTO;
+import org.apache.james.server.core.MailImpl;
+import org.apache.james.server.core.MimeMessageWrapper;
import org.apache.mailet.Mail;
+import com.github.fge.lambdas.Throwing;
+
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;
@@ -103,9 +107,17 @@ public class CassandraMailRepository implements MailRepository {
MimeMessagePartsId parts = blobIds(mailDTO);
return mimeMessageStore.read(parts)
- .map(mimeMessage -> mailDTO.getMailBuilder()
- .mimeMessage(mimeMessage)
- .build());
+ .map(Throwing.function(mimeMessage -> {
+ MailImpl mail = mailDTO.getMailBuilder()
+ .build();
+
+ if (mimeMessage instanceof MimeMessageWrapper) {
+ mail.setMessageNoCopy((MimeMessageWrapper) mimeMessage);
+ } else {
+ mail.setMessage(mimeMessage);
+ }
+ return mail;
+ }));
}
private MimeMessagePartsId blobIds(MailDTO mailDTO) {
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@james.apache.org
For additional commands, e-mail: notifications-help@james.apache.org