[
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/%[email protected]%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)