Repository: james-project
Updated Branches:
  refs/heads/master 131c01148 -> 1602d26db


JAMES-1871: Canceling JMAP uploads should not return an error


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/89800605
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/89800605
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/89800605

Branch: refs/heads/master
Commit: 8980060561940cda6fe1140c2ef992f10a874468
Parents: 131c011
Author: Quynh Nguyen <[email protected]>
Authored: Tue Dec 27 11:15:39 2016 +0700
Committer: Quynh Nguyen <[email protected]>
Committed: Wed Jan 11 10:02:30 2017 +0700

----------------------------------------------------------------------
 .../java/org/apache/james/jmap/UploadServlet.java  | 17 ++++++++++++++---
 1 file changed, 14 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/89800605/server/protocols/jmap/src/main/java/org/apache/james/jmap/UploadServlet.java
----------------------------------------------------------------------
diff --git 
a/server/protocols/jmap/src/main/java/org/apache/james/jmap/UploadServlet.java 
b/server/protocols/jmap/src/main/java/org/apache/james/jmap/UploadServlet.java
index 873bf5e..d858698 100644
--- 
a/server/protocols/jmap/src/main/java/org/apache/james/jmap/UploadServlet.java
+++ 
b/server/protocols/jmap/src/main/java/org/apache/james/jmap/UploadServlet.java
@@ -21,6 +21,7 @@ package org.apache.james.jmap;
 import static javax.servlet.http.HttpServletResponse.SC_BAD_REQUEST;
 import static javax.servlet.http.HttpServletResponse.SC_INTERNAL_SERVER_ERROR;
 
+import java.io.EOFException;
 import java.io.IOException;
 
 import javax.inject.Inject;
@@ -54,13 +55,23 @@ public class UploadServlet extends HttpServlet {
         } else {
             try {
                 uploadHandler.handle(contentType, req.getInputStream(), 
getMailboxSession(req), resp);
-            } catch (IOException | MailboxException e) {
-                LOGGER.error("Error while uploading content", e);
-                resp.setStatus(SC_INTERNAL_SERVER_ERROR);
+            } catch (IOException e) {
+                if (e instanceof EOFException) {
+                    LOGGER.info("An upload has been canceled before the end", 
e);
+                } else {
+                    internalServerError(resp, e);
+                }
+            } catch (MailboxException e) {
+                internalServerError(resp, e);
             }
         }
     }
 
+    private void internalServerError(HttpServletResponse resp, Exception e) {
+        LOGGER.error("Error while uploading content", e);
+        resp.setStatus(SC_INTERNAL_SERVER_ERROR);
+    }
+
     private MailboxSession getMailboxSession(HttpServletRequest req) {
         return (MailboxSession) 
req.getAttribute(AuthenticationFilter.MAILBOX_SESSION);
     }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to