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]
