You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by ad...@apache.org on 2017/07/05 13:59:13 UTC
[06/34] james-project git commit: JAMES-2085 JMAP should consider raw
MailboxException as unexpected
JAMES-2085 JMAP should consider raw MailboxException as unexpected
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/624cd01d
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/624cd01d
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/624cd01d
Branch: refs/heads/master
Commit: 624cd01db8dc5d495ab28413d4748d8da57117a8
Parents: 6ed945b
Author: benwa <bt...@linagora.com>
Authored: Mon Jul 3 11:51:16 2017 +0700
Committer: benwa <bt...@linagora.com>
Committed: Wed Jul 5 17:13:29 2017 +0700
----------------------------------------------------------------------
.../james/jmap/methods/SetMailboxesUpdateProcessor.java | 4 ++++
.../org/apache/james/jmap/methods/SetMessagesMethod.java | 9 +--------
.../java/org/apache/james/jmap/model/MailboxFactory.java | 7 ++++++-
3 files changed, 11 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/624cd01d/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMailboxesUpdateProcessor.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMailboxesUpdateProcessor.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMailboxesUpdateProcessor.java
index 208e342..459753c 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMailboxesUpdateProcessor.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMailboxesUpdateProcessor.java
@@ -49,6 +49,8 @@ import org.apache.james.mailbox.model.MailboxId;
import org.apache.james.mailbox.model.MailboxPath;
import org.apache.james.metrics.api.MetricFactory;
import org.apache.james.metrics.api.TimeMetric;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import com.github.fge.lambdas.Throwing;
import com.github.fge.lambdas.functions.ThrowingFunction;
@@ -58,6 +60,7 @@ import com.google.common.collect.Iterables;
public class SetMailboxesUpdateProcessor implements SetMailboxesProcessor {
+ private static final Logger LOGGER = LoggerFactory.getLogger(SetMailboxesUpdateProcessor.class);
private final MailboxUtils mailboxUtils;
private final MailboxManager mailboxManager;
private final MailboxFactory mailboxFactory;
@@ -132,6 +135,7 @@ public class SetMailboxesUpdateProcessor implements SetMailboxesProcessor {
.description("Cannot rename a mailbox to an already existing mailbox.")
.build());
} catch (MailboxException e) {
+ LOGGER.error("Error while updating mailbox", e);
responseBuilder.notUpdated(mailboxId, SetError.builder()
.type( "anErrorOccurred")
.description("An error occurred when updating the mailbox")
http://git-wip-us.apache.org/repos/asf/james-project/blob/624cd01d/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMessagesMethod.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMessagesMethod.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMessagesMethod.java
index eff2345..8f9da9b 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMessagesMethod.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMessagesMethod.java
@@ -28,7 +28,6 @@ import org.apache.james.jmap.model.ClientId;
import org.apache.james.jmap.model.SetMessagesRequest;
import org.apache.james.jmap.model.SetMessagesResponse;
import org.apache.james.mailbox.MailboxSession;
-import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.metrics.api.MetricFactory;
import org.apache.james.metrics.api.TimeMetric;
@@ -69,18 +68,12 @@ public class SetMessagesMethod implements Method {
.responseName(RESPONSE_NAME)
.build());
return responses;
- } catch (MailboxException e) {
- return Stream.of(
- JmapResponse.builder().clientId(clientId)
- .error()
- .responseName(RESPONSE_NAME)
- .build());
} finally {
timeMetric.stopAndPublish();
}
}
- private SetMessagesResponse setMessagesResponse(SetMessagesRequest request, MailboxSession mailboxSession) throws MailboxException {
+ private SetMessagesResponse setMessagesResponse(SetMessagesRequest request, MailboxSession mailboxSession) {
return messagesProcessors.stream()
.map(processor -> processor.process(request, mailboxSession))
.reduce(SetMessagesResponse.builder(),
http://git-wip-us.apache.org/repos/asf/james-project/blob/624cd01d/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/MailboxFactory.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/MailboxFactory.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/MailboxFactory.java
index 25e274e..6f4e9b1 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/MailboxFactory.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/MailboxFactory.java
@@ -30,14 +30,17 @@ import org.apache.james.mailbox.MailboxManager;
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.MessageManager;
import org.apache.james.mailbox.exception.MailboxException;
+import org.apache.james.mailbox.exception.MailboxNotFoundException;
import org.apache.james.mailbox.model.MailboxCounters;
import org.apache.james.mailbox.model.MailboxId;
import org.apache.james.mailbox.model.MailboxMetaData;
import org.apache.james.mailbox.model.MailboxPath;
+import org.slf4j.LoggerFactory;
import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.Preconditions;
import com.google.common.base.Splitter;
+import com.google.common.base.Throwables;
public class MailboxFactory {
private final MailboxManager mailboxManager;
@@ -74,8 +77,10 @@ public class MailboxFactory {
try {
MessageManager mailbox = mailboxFactory.mailboxManager.getMailbox(id, session);
return mailboxFactory.fromMessageManager(mailbox, Optional.ofNullable(userMailboxesMetadata), session);
- } catch (MailboxException e) {
+ } catch (MailboxNotFoundException e) {
return Optional.empty();
+ } catch (MailboxException e) {
+ throw Throwables.propagate(e);
}
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org