aha... ok. good catch
Dan Diephouse wrote: > I found it - there wasn't a status code being set, so we were calling > response.setStatus(0), which caused jetty all sorts of problems because > it uses the status field to denote that the connection was reset or > something like that. > > Anyway, fixed in SVN and Greg is going to throw an > IllegalArgumentException in Jetty if 0 is passed in from now on. > > - Dan > > Dan Diephouse wrote: >> Its not close()ing actually. The underlying XMLStreamWriter flushes >> once endDocument() is called. flush() is only ever called once too. >> I'm not sure why thats causing Jetty to freak out. *sigh* >> >> Googling turned up this, but I'm not sure its really helping me - >> http://jira.codehaus.org/browse/JETTY-276 >> >> - Dan >> >> James M Snell wrote: >>> It's possible but then I'd expect the error to be thrown higher up in >>> the method. For some reason, the underlying writer appears to be >>> closing before the method completes. Any chance you can do some >>> debugging on that internal writer to see what's going on with it? >>> >>> - James >>> >>> Dan Diephouse wrote: >>> >>>> Any chance the document is being written twice somehow? Thats what the >>>> exception seems to imply to me, but I could be way off. >>>> >>>> Dan Diephouse wrote: >>>> >>>>> Its the code inside AbstractServiceProvider.getServicesDocument() >>>>> (formerly known as AbstractWorkspaceProvider). >>>>> >>>>> James M Snell wrote: >>>>> >>>>>> Odd. Can you provide some of the code you're using the write out the >>>>>> document? >>>>>> >>>>>> - James >>>>>> >>>>>> Dan Diephouse wrote: >>>>>> >>>>>> >>>>>>> I'm getting the following exception in my app when printing out a >>>>>>> services document now. I haven't been able to reproduce in any of >>>>>>> the >>>>>>> Abdera test cases I've written though. Any ideas? >>>>>>> >>>>>>> - Dan >>>>>>> >>>>>>> java.lang.RuntimeException: com.ctc.wstx.exc.WstxIOException: null >>>>>>> at >>>>>>> org.apache.abdera.parser.stax.StaxStreamWriter.endDocument(StaxStreamWriter.java:117) >>>>>>> >>>>>>> >>>>>>> >>>>>>> at >>>>>>> org.apache.abdera.protocol.server.impl.AbstractServiceProvider$1.writeTo(AbstractServiceProvider.java:184) >>>>>>> >>>>>>> >>>>>>> >>>>>>> at >>>>>>> org.apache.abdera.protocol.server.impl.StreamWriterResponseContext.writeEntity(StreamWriterResponseContext.java:94) >>>>>>> >>>>>>> >>>>>>> >>>>>>> at >>>>>>> org.apache.abdera.protocol.server.impl.SimpleResponseContext.writeTo(SimpleResponseContext.java:67) >>>>>>> >>>>>>> >>>>>>> >>>>>>> at >>>>>>> org.apache.abdera.protocol.server.impl.SimpleResponseContext.writeTo(SimpleResponseContext.java:60) >>>>>>> >>>>>>> >>>>>>> >>>>>>> at >>>>>>> org.apache.abdera.protocol.server.impl.DefaultRequestHandler.response(DefaultRequestHandler.java:133) >>>>>>> >>>>>>> >>>>>>> >>>>>>> at >>>>>>> org.apache.abdera.protocol.server.impl.DefaultRequestHandler.process(DefaultRequestHandler.java:61) >>>>>>> >>>>>>> >>>>>>> >>>>>>> at >>>>>>> org.apache.abdera.protocol.server.servlet.AbderaServlet.service(AbderaServlet.java:100) >>>>>>> >>>>>>> >>>>>>> >>>>>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) >>>>>>> at >>>>>>> org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487) >>>>>>> >>>>>>> at >>>>>>> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093) >>>>>>> >>>>>>> >>>>>>> >>>>>>> at >>>>>>> org.springmodules.jcr.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:93) >>>>>>> >>>>>>> >>>>>>> >>>>>>> at >>>>>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75) >>>>>>> >>>>>>> >>>>>>> >>>>>>> at >>>>>>> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084) >>>>>>> >>>>>>> >>>>>>> >>>>>>> at >>>>>>> org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:265) >>>>>>> >>>>>>> >>>>>>> >>>>>>> at >>>>>>> org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107) >>>>>>> >>>>>>> >>>>>>> >>>>>>> at >>>>>>> org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72) >>>>>>> >>>>>>> >>>>>>> >>>>>>> at >>>>>>> org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275) >>>>>>> >>>>>>> >>>>>>> >>>>>>> at >>>>>>> org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:166) >>>>>>> >>>>>>> >>>>>>> >>>>>>> at >>>>>>> org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275) >>>>>>> >>>>>>> >>>>>>> >>>>>>> at >>>>>>> org.acegisecurity.ui.switchuser.SwitchUserProcessingFilter.doFilter(SwitchUserProcessingFilter.java:341) >>>>>>> >>>>>>> >>>>>>> >>>>>>> at >>>>>>> org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275) >>>>>>> >>>>>>> >>>>>>> >>>>>>> at >>>>>>> org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125) >>>>>>> >>>>>>> >>>>>>> >>>>>>> at >>>>>>> org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275) >>>>>>> >>>>>>> >>>>>>> >>>>>>> at >>>>>>> org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142) >>>>>>> >>>>>>> >>>>>>> >>>>>>> at >>>>>>> org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275) >>>>>>> >>>>>>> >>>>>>> >>>>>>> at >>>>>>> org.acegisecurity.wrapper.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:81) >>>>>>> >>>>>>> >>>>>>> >>>>>>> at >>>>>>> org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275) >>>>>>> >>>>>>> >>>>>>> >>>>>>> at >>>>>>> org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:173) >>>>>>> >>>>>>> >>>>>>> >>>>>>> at >>>>>>> org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275) >>>>>>> >>>>>>> >>>>>>> >>>>>>> at >>>>>>> org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271) >>>>>>> >>>>>>> >>>>>>> >>>>>>> at >>>>>>> org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275) >>>>>>> >>>>>>> >>>>>>> >>>>>>> at >>>>>>> org.acegisecurity.ui.logout.LogoutFilter.doFilter(LogoutFilter.java:110) >>>>>>> >>>>>>> >>>>>>> at >>>>>>> org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275) >>>>>>> >>>>>>> >>>>>>> >>>>>>> at >>>>>>> org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249) >>>>>>> >>>>>>> >>>>>>> >>>>>>> at >>>>>>> org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275) >>>>>>> >>>>>>> >>>>>>> >>>>>>> at >>>>>>> org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:149) >>>>>>> >>>>>>> >>>>>>> at >>>>>>> org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98) >>>>>>> >>>>>>> >>>>>>> >>>>>>> at >>>>>>> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084) >>>>>>> >>>>>>> >>>>>>> >>>>>>> at >>>>>>> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360) >>>>>>> >>>>>>> >>>>>>> at >>>>>>> org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) >>>>>>> >>>>>>> >>>>>>> at >>>>>>> org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181) >>>>>>> >>>>>>> >>>>>>> at >>>>>>> org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712) >>>>>>> >>>>>>> >>>>>>> at >>>>>>> org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405) >>>>>>> >>>>>>> at >>>>>>> org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139) >>>>>>> >>>>>>> >>>>>>> at org.mortbay.jetty.Server.handle(Server.java:313) >>>>>>> at >>>>>>> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:506) >>>>>>> >>>>>>> at >>>>>>> org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:830) >>>>>>> >>>>>>> >>>>>>> >>>>>>> at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514) >>>>>>> at >>>>>>> org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211) >>>>>>> at >>>>>>> org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381) >>>>>>> at >>>>>>> org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:227) >>>>>>> >>>>>>> >>>>>>> >>>>>>> at >>>>>>> org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442) >>>>>>> >>>>>>> >>>>>>> >>>>>>> Caused by: com.ctc.wstx.exc.WstxIOException: null >>>>>>> at >>>>>>> com.ctc.wstx.sw.BaseStreamWriter.finishDocument(BaseStreamWriter.java:1687) >>>>>>> >>>>>>> >>>>>>> at >>>>>>> com.ctc.wstx.sw.BaseStreamWriter.writeEndDocument(BaseStreamWriter.java:585) >>>>>>> >>>>>>> >>>>>>> >>>>>>> at >>>>>>> org.apache.abdera.parser.stax.StaxStreamWriter.endDocument(StaxStreamWriter.java:114) >>>>>>> >>>>>>> >>>>>>> >>>>>>> ... 52 more >>>>>>> Caused by: org.mortbay.jetty.EofException >>>>>>> at >>>>>>> org.mortbay.jetty.HttpGenerator.completeHeader(HttpGenerator.java:253) >>>>>>> >>>>>>> at >>>>>>> org.mortbay.jetty.HttpConnection.commitResponse(HttpConnection.java:581) >>>>>>> >>>>>>> >>>>>>> at >>>>>>> org.mortbay.jetty.HttpConnection$Output.flush(HttpConnection.java:906) >>>>>>> >>>>>>> at >>>>>>> sun.nio.cs.StreamEncoder$CharsetSE.implFlush(StreamEncoder.java:410) >>>>>>> at sun.nio.cs.StreamEncoder.flush(StreamEncoder.java:152) >>>>>>> at java.io.OutputStreamWriter.flush(OutputStreamWriter.java:213) >>>>>>> at >>>>>>> com.ctc.wstx.sw.BufferingXmlWriter.flush(BufferingXmlWriter.java:214) >>>>>>> >>>>>>> at >>>>>>> com.ctc.wstx.sw.BufferingXmlWriter.close(BufferingXmlWriter.java:194) >>>>>>> >>>>>>> at >>>>>>> com.ctc.wstx.sw.BaseStreamWriter.finishDocument(BaseStreamWriter.java:1685) >>>>>>> >>>>>>> >>>>>>> ... 54 more >>>>>>> [12-12 15:57:41] INFO / [main]: Destroying >>>>>>> >>>>>>> >>>>> >>>> >> >> > >
