You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jackrabbit.apache.org by "Lukas Kahwe Smith (JIRA)" <ji...@apache.org> on 2014/04/14 12:06:16 UTC
[jira] [Commented] (JCR-3767) incorrect error handling in
combination with Jetty
[ https://issues.apache.org/jira/browse/JCR-3767?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13968202#comment-13968202 ]
Lukas Kahwe Smith commented on JCR-3767:
----------------------------------------
BTW I am now suspecting that this occurs when we are doing a POST to fetch multiple nodes at once.
> incorrect error handling in combination with Jetty
> --------------------------------------------------
>
> Key: JCR-3767
> URL: https://issues.apache.org/jira/browse/JCR-3767
> Project: Jackrabbit Content Repository
> Issue Type: Bug
> Environment: Jackrabbit 2.6.5 Standalone
> Reporter: Lukas Kahwe Smith
>
> quoting Bertrand from the list (http://mail-archives.apache.org/mod_mbox/jackrabbit-users/201404.mbox/%3c899EE55B-2687-4050-9D64-CE5EB81C18FC@pooteeweet.org%3e):
> {quote}
> IIUC either your code or Jackrabbit's is calling response.getWriter(),
> and later sendError -> WebdavResponseImpl.sendXmlResponse calls
> response.getOutputStream() and causes the issue, as per the servlet
> spec [1].
> I have no idea if it's correct for WebdavResponseImpl to be involved
> and whether it's correct for it to use sendXmlResponse.
> I guess the best would be for such error handling code to be prepared
> to use either Writer or OutputStream, depending on what happened
> before. Unless something else (like a response object wrapper)
> guarantees that you cannot mix both.
> {quote}
> Here is the stack trace that let Bertrand to this analysis, he also referenced this Jetty bug ticket http://jira.codehaus.org/browse/JETTY-1111
> {quote}
> 2014-04-03 12:28:06.964 ERROR [2115513477@qtp-221739023-131] Slf4jLog.java:87 /server/joiz_ch/jcr:root/.0.json
> java.lang.IllegalStateException: WRITER
> at org.mortbay.jetty.Response.getOutputStream(Response.java:594) ~[jackrabbit.jar:na]
> at org.apache.jackrabbit.webdav.WebdavResponseImpl.sendXmlResponse(WebdavResponseImpl.java:151) ~[jackrabbit.jar:na]
> at org.apache.jackrabbit.webdav.WebdavResponseImpl.sendError(WebdavResponseImpl.java:95) ~[jackrabbit.jar:na]
> at org.apache.jackrabbit.webdav.server.AbstractWebdavServlet.service(AbstractWebdavServlet.java:299) ~[jackrabbit.jar:na]
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) ~[jackrabbit.jar:na]
> at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) ~[jackrabbit.jar:na]
> at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:390) ~[jackrabbit.jar:na]
> at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) [jackrabbit.jar:na]
> at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) [jackrabbit.jar:na]
> at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) [jackrabbit.jar:na]
> at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418) [jackrabbit.jar:na]
> at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) [jackrabbit.jar:na]
> at org.mortbay.jetty.handler.RequestLogHandler.handle(RequestLogHandler.java:49) [jackrabbit.jar:na]
> at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) [jackrabbit.jar:na]
> at org.mortbay.jetty.Server.handle(Server.java:326) [jackrabbit.jar:na]
> at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) [jackrabbit.jar:na]
> at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:938) [jackrabbit.jar:na]
> at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:755) [jackrabbit.jar:na]
> at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218) [jackrabbit.jar:na]
> at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) [jackrabbit.jar:na]
> at org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:228) [jackrabbit.jar:na]
> at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582) [jackrabbit.jar:na]
> 2014-04-03 12:28:10.649 ERROR [124001894@qtp-221739023-146] Slf4jLog.java:87 /server/joiz_ch/jcr:root/.0.json
> java.lang.IllegalStateException: WRITER
> at org.mortbay.jetty.Response.getOutputStream(Response.java:594) ~[jackrabbit.jar:na]
> at org.apache.jackrabbit.webdav.WebdavResponseImpl.sendXmlResponse(WebdavResponseImpl.java:151) ~[jackrabbit.jar:na]
> at org.apache.jackrabbit.webdav.WebdavResponseImpl.sendError(WebdavResponseImpl.java:95) ~[jackrabbit.jar:na]
> at org.apache.jackrabbit.webdav.server.AbstractWebdavServlet.service(AbstractWebdavServlet.java:299) ~[jackrabbit.jar:na]
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) ~[jackrabbit.jar:na]
> at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) ~[jackrabbit.jar:na]
> at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:390) ~[jackrabbit.jar:na]
> at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) [jackrabbit.jar:na]
> at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) [jackrabbit.jar:na]
> at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) [jackrabbit.jar:na]
> at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418) [jackrabbit.jar:na]
> at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) [jackrabbit.jar:na]
> at org.mortbay.jetty.handler.RequestLogHandler.handle(RequestLogHandler.java:49) [jackrabbit.jar:na]
> at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) [jackrabbit.jar:na]
> at org.mortbay.jetty.Server.handle(Server.java:326) [jackrabbit.jar:na]
> at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) [jackrabbit.jar:na]
> at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:938) [jackrabbit.jar:na]
> at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:755) [jackrabbit.jar:na]
> at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218) [jackrabbit.jar:na]
> at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) [jackrabbit.jar:na]
> at org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:228) [jackrabbit.jar:na]
> at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582) [jackrabbit.jar:na]
> 2014-04-03 12:56:10.644 ERROR [952066274@qtp-221739023-157] Slf4jLog.java:87 /server/joiz_ch/jcr:root/.0.json
> java.lang.IllegalStateException: WRITER
> at org.mortbay.jetty.Response.getOutputStream(Response.java:594) ~[jackrabbit.jar:na]
> at org.apache.jackrabbit.webdav.WebdavResponseImpl.sendXmlResponse(WebdavResponseImpl.java:151) ~[jackrabbit.jar:na]
> at org.apache.jackrabbit.webdav.WebdavResponseImpl.sendError(WebdavResponseImpl.java:95) ~[jackrabbit.jar:na]
> at org.apache.jackrabbit.webdav.server.AbstractWebdavServlet.service(AbstractWebdavServlet.java:299) ~[jackrabbit.jar:na]
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) ~[jackrabbit.jar:na]
> at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) ~[jackrabbit.jar:na]
> at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:390) ~[jackrabbit.jar:na]
> at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) [jackrabbit.jar:na]
> at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) [jackrabbit.jar:na]
> at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) [jackrabbit.jar:na]
> at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418) [jackrabbit.jar:na]
> at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) [jackrabbit.jar:na]
> at org.mortbay.jetty.handler.RequestLogHandler.handle(RequestLogHandler.java:49) [jackrabbit.jar:na]
> at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) [jackrabbit.jar:na]
> at org.mortbay.jetty.Server.handle(Server.java:326) [jackrabbit.jar:na]
> at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) [jackrabbit.jar:na]
> at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:938) [jackrabbit.jar:na]
> at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:755) [jackrabbit.jar:na]
> at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218) [jackrabbit.jar:na]
> at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) [jackrabbit.jar:na]
> at org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:228) [jackrabbit.jar:na]
> at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582) [jackrabbit.jar:na]
> 2014-04-03 12:56:12.011 ERROR [1440433128@qtp-221739023-163] Slf4jLog.java:87 /server/joiz_ch/jcr:root/.0.json
> java.lang.IllegalStateException: WRITER
> at org.mortbay.jetty.Response.getOutputStream(Response.java:594) ~[jackrabbit.jar:na]
> at org.apache.jackrabbit.webdav.WebdavResponseImpl.sendXmlResponse(WebdavResponseImpl.java:151) ~[jackrabbit.jar:na]
> at org.apache.jackrabbit.webdav.WebdavResponseImpl.sendError(WebdavResponseImpl.java:95) ~[jackrabbit.jar:na]
> at org.apache.jackrabbit.webdav.server.AbstractWebdavServlet.service(AbstractWebdavServlet.java:299) ~[jackrabbit.jar:na]
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) ~[jackrabbit.jar:na]
> at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) ~[jackrabbit.jar:na]
> at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:390) ~[jackrabbit.jar:na]
> at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) [jackrabbit.jar:na]
> at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) [jackrabbit.jar:na]
> at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) [jackrabbit.jar:na]
> at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418) [jackrabbit.jar:na]
> at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) [jackrabbit.jar:na]
> at org.mortbay.jetty.handler.RequestLogHandler.handle(RequestLogHandler.java:49) [jackrabbit.jar:na]
> at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) [jackrabbit.jar:na]
> at org.mortbay.jetty.Server.handle(Server.java:326) [jackrabbit.jar:na]
> at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) [jackrabbit.jar:na]
> at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:938) [jackrabbit.jar:na]
> at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:755) [jackrabbit.jar:na]
> at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218) [jackrabbit.jar:na]
> at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) [jackrabbit.jar:na]
> at org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:228) [jackrabbit.jar:na]
> at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582) [jackrabbit.jar:na]
> {quote}
--
This message was sent by Atlassian JIRA
(v6.2#6252)