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 rc...@apache.org on 2020/05/04 10:02:01 UTC
[james-project] 14/14: JAMES-3149 Fix GetMessages method accountId
handling
This is an automated email from the ASF dual-hosted git repository.
rcordier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git
commit 80d6c1eafe70567641a9186406aaa5bce03457a5
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Tue Apr 28 12:01:06 2020 +0700
JAMES-3149 Fix GetMessages method accountId handling
---
.../jmap/draft/methods/GetMessagesMethod.java | 2 +-
.../james/jmap/draft/methods/RequestHandler.java | 22 +++++++++-------------
2 files changed, 10 insertions(+), 14 deletions(-)
diff --git a/server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/methods/GetMessagesMethod.java b/server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/methods/GetMessagesMethod.java
index dafb5a0..59f2731 100644
--- a/server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/methods/GetMessagesMethod.java
+++ b/server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/methods/GetMessagesMethod.java
@@ -114,7 +114,7 @@ public class GetMessagesMethod implements Method {
}
private Mono<GetMessagesResponse> getMessagesResponse(MailboxSession mailboxSession, GetMessagesRequest getMessagesRequest) {
- getMessagesRequest.getAccountId().ifPresent((input) -> notImplemented("accountId"));
+ getMessagesRequest.getAccountId().ifPresent(input -> notImplemented("accountId"));
MessageProperties.ReadProfile readProfile = getMessagesRequest.getProperties().computeReadLevel();
MessageViewFactory<? extends MessageView> factory = messageViewFactory.getFactory(readProfile);
diff --git a/server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/methods/RequestHandler.java b/server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/methods/RequestHandler.java
index 2b71839..c895a3a 100644
--- a/server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/methods/RequestHandler.java
+++ b/server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/methods/RequestHandler.java
@@ -39,6 +39,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import reactor.core.publisher.Flux;
+import reactor.core.publisher.Mono;
public class RequestHandler {
@@ -75,19 +76,14 @@ public class RequestHandler {
private Function<Method, Flux<JmapResponse>> extractAndProcess(AuthenticatedRequest request) {
MailboxSession mailboxSession = request.getMailboxSession();
- return (Method method) -> {
- try {
- JmapRequest jmapRequest = jmapRequestParser.extractJmapRequest(request, method.requestType());
- return method.process(jmapRequest, request.getMethodCallId(), mailboxSession)
- .onErrorResume(JmapFieldNotSupportedException.class, e -> errorNotImplemented(e, request));
- } catch (IOException e) {
- LOGGER.error("Error occured while parsing the request.", e);
- if (e.getCause() instanceof JmapFieldNotSupportedException) {
- return errorNotImplemented((JmapFieldNotSupportedException) e.getCause(), request);
- }
- return error(request, generateInvalidArgumentError(e.getMessage()));
- }
- };
+ return (Method method) ->
+ Mono.fromCallable(() -> jmapRequestParser.extractJmapRequest(request, method.requestType()))
+ .flatMapMany(jmapRequest -> method.process(jmapRequest, request.getMethodCallId(), mailboxSession))
+ .onErrorResume(JmapFieldNotSupportedException.class, e -> errorNotImplemented(e, request))
+ .onErrorResume(
+ e -> e.getCause() instanceof JmapFieldNotSupportedException,
+ e -> errorNotImplemented((JmapFieldNotSupportedException) e.getCause(), request))
+ .onErrorResume(IOException.class, e -> error(request, generateInvalidArgumentError(e.getMessage())));
}
public ErrorResponse generateInvalidArgumentError(String description) {
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org