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 <btell...@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-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org

Reply via email to