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/04/19 04:04:38 UTC
[james-project] 47/49: JAMES-3737 Fix reactive subscriptions for Cassandra
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 6d766619bee54bacc8ebf41cc6681bbe26cc1626
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Fri Apr 8 13:42:31 2022 +0700
JAMES-3737 Fix reactive subscriptions for Cassandra
---
.../cassandra/user/CassandraSubscriptionMapper.java | 16 ++++++----------
.../org/apache/james/imap/processor/LSubProcessor.java | 5 ++---
2 files changed, 8 insertions(+), 13 deletions(-)
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/user/CassandraSubscriptionMapper.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/user/CassandraSubscriptionMapper.java
index c7a176de5d..19413fd0e0 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/user/CassandraSubscriptionMapper.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/user/CassandraSubscriptionMapper.java
@@ -70,10 +70,8 @@ public class CassandraSubscriptionMapper extends NonTransactionalMapper implemen
}
@Override
- public synchronized void delete(Subscription subscription) {
- session.execute(deleteStatement.bind()
- .setString(USER, subscription.getUser().asString())
- .setString(MAILBOX, subscription.getMailbox()));
+ public void delete(Subscription subscription) {
+ deleteReactive(subscription).block();
}
@Override
@@ -94,22 +92,20 @@ public class CassandraSubscriptionMapper extends NonTransactionalMapper implemen
}
@Override
- public synchronized void save(Subscription subscription) {
- session.execute(insertStatement.bind()
- .setString(USER, subscription.getUser().asString())
- .setString(MAILBOX, subscription.getMailbox()));
+ public void save(Subscription subscription) {
+ saveReactive(subscription).block();
}
@Override
public Mono<Void> saveReactive(Subscription subscription) {
- return executor.executeVoid(deleteStatement.bind()
+ return executor.executeVoid(insertStatement.bind()
.setString(USER, subscription.getUser().asString())
.setString(MAILBOX, subscription.getMailbox()));
}
@Override
public Mono<Void> deleteReactive(Subscription subscription) {
- return executor.executeVoid(insertStatement.bind()
+ return executor.executeVoid(deleteStatement.bind()
.setString(USER, subscription.getUser().asString())
.setString(MAILBOX, subscription.getMailbox()));
}
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/LSubProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/LSubProcessor.java
index 14c831aa52..aab02b663f 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/LSubProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/LSubProcessor.java
@@ -73,9 +73,8 @@ public class LSubProcessor extends AbstractMailboxProcessor<LsubRequest> {
private Mono<Void> listSubscriptions(ImapSession session, Responder responder, String referenceName, String mailboxName) {
MailboxSession mailboxSession = session.getMailboxSession();
- Mono<List<String>> mailboxesMono;
try {
- mailboxesMono = Flux.from(subscriptionManager.subscriptionsReactive(mailboxSession))
+ Mono<List<String>> mailboxesMono = Flux.from(subscriptionManager.subscriptionsReactive(mailboxSession))
.collectList();
String decodedMailName = ModifiedUtf7.decodeModifiedUTF7(referenceName);
@@ -84,9 +83,9 @@ public class LSubProcessor extends AbstractMailboxProcessor<LsubRequest> {
decodedMailName,
ModifiedUtf7.decodeModifiedUTF7(mailboxName),
mailboxSession.getPathDelimiter());
- Collection<String> mailboxResponses = new ArrayList<>();
return mailboxesMono.doOnNext(mailboxes -> {
+ Collection<String> mailboxResponses = new ArrayList<>();
for (String mailbox : mailboxes) {
respond(responder, expression, mailbox, true, mailboxes, mailboxResponses, mailboxSession.getPathDelimiter());
}
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@james.apache.org
For additional commands, e-mail: notifications-help@james.apache.org