[ 
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)

Reply via email to