Hi Gabriel,
yes, Grzegorz is right, someone is closing the Jetty output stream too
early ... it could be cocoon, it could be Jetty itself, it could even be
the client or a router dropping the connection. In fact, I have seen
this error not only in cocoon but in many other frameworks as well.
Basically, there is some piece of data (maybe just a whitespace, or a
carriage return) that someone is trying to write to the client, but
someone else closed the connection already. Seems like Jetty is the one
that most often complains about this error... probably it has a better
check for this case, or a buggy way of closing the connection :).

Anyway, if this stack trace is common (happens at least most of the
time, if not always) then maybe it could be the case to investigate
further. Seeing the stack trace, seems like it is the line
AbstractCachingProcessingPipeline.java:834 that is trying to write to
the stream. If you find a somestream.write(..) call there, then please
file a bug. While it is true that this is most probably a jetty
misbehaviour, at the same time we could investigate if Cocoon is really
writing after it should and Jetty is simply picky enough to raise an
error in this case.


Simone




Gabriel Gruber wrote:
>
> Hello,
>
> I am facing a strange issue with our product, which was recently
> ported to cocoon 2.2 and is now in the final stabilization phase. It
> seems that for some reason various exceptions occure on the log which
> might have something to do with servlet service framework or inproper
> configuration of jetty. this particular exception is repoduceable as
> we get it, when driving a seleninium testcase against an embedded
> jetty/hsqldb configuration of our product.
>
> Interestingly this does not have any bad consequence in the frontend.
> however something seems to go wrong...
>
> Stacktrace:
> javax.servlet.ServletException: org.apache.cocoon.ProcessingException:
> Failed to process reader
>
>                 at <map:read type="servletLinkRewriter"> -
> file:///C:/WINDOWS/TEMP/Jetty_0_0_0_0_0_webapp____75ty4m/blocks/cocoon-forms-impl/sitemap.xmap:59:104
>
>                 at <map:match> -
> file:///C:/WINDOWS/TEMP/Jetty_0_0_0_0_0_webapp____75ty4m/blocks/cocoon-forms-impl/sitemap.xmap:58:58
>
>                 at
> org.apache.cocoon.servlet.RequestProcessor.service(RequestProcessor.java:226)
>
>                 at
> org.apache.cocoon.sitemap.SitemapServlet.service(SitemapServlet.java:82)
>
>                 at
> javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
>
>                 at
> sun.reflect.GeneratedMethodAccessor229.invoke(Unknown Source)
>
>                 at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>
>                 at java.lang.reflect.Method.invoke(Method.java:585)
>
>                 at
> org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310)
>
>                 at
> org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
>
>                 at
> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
>
>                 at
> org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:77)
>
>                 at
> org.apache.cocoon.jnet.URLHandlerFactoryCollector.installURLHandlers(URLHandlerFactoryCollector.java:37)
>
>                 at
> sun.reflect.GeneratedMethodAccessor228.invoke(Unknown Source)
>
>                 at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>
>                 at java.lang.reflect.Method.invoke(Method.java:585)
>
>                 at
> org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:627)
>
>                 at
> org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:616)
>
>                 at
> org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:64)
>
>                 at
> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
>
>                 at
> org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
>
>                 at
> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
>
>                 at
> org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
>
>                 at $Proxy4.service(Unknown Source)
>
>                 at
> org.apache.cocoon.servletservice.ServletServiceContext$PathDispatcher.forward(ServletServiceContext.java:481)
>
>                 at
> org.apache.cocoon.servletservice.ServletServiceContext$NamedDispatcher.forward(ServletServiceContext.java:424)
>
>                 at
> org.apache.cocoon.servletservice.ServletServiceContext$PathDispatcher.forward(ServletServiceContext.java:494)
>
>                 at
> org.apache.cocoon.servletservice.ServletServiceContext$PathDispatcher.forward(ServletServiceContext.java:455)
>
>                 at
> org.apache.cocoon.servletservice.spring.ServletFactoryBean$ServiceInterceptor.invoke(ServletFactoryBean.java:245)
>
>                 at
> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
>
>                 at
> org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
>
>                 at $Proxy61.service(Unknown Source)
>
>                 at
> org.apache.cocoon.servletservice.DispatcherServlet.service(DispatcherServlet.java:106)
>
>                 at
> javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
>
>                 at
> org.apache.cocoon.tools.rcl.wrapper.servlet.ReloadingServlet.service(ReloadingServlet.java:91)
>
>                 at
> org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
>
>                 at
> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093)
>
>                 at
> org.apache.cocoon.servlet.multipart.MultipartFilter.doFilter(MultipartFilter.java:131)
>
>                 at
> org.apache.cocoon.tools.rcl.wrapper.servlet.ReloadingServletFilter.doFilter(ReloadingServletFilter.java:51)
>
>                 at
> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
>
>                 at
> org.apache.cocoon.servlet.DebugFilter.doFilter(DebugFilter.java:167)
>
>                 at
> org.apache.cocoon.tools.rcl.wrapper.servlet.ReloadingServletFilter.doFilter(ReloadingServletFilter.java:51)
>
>                 at
> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
>
>                 at
> org.apache.cocoon.tools.rcl.wrapper.servlet.ReloadingSpringFilter.doFilter(ReloadingSpringFilter.java:67)
>
>                 at
> org.apache.cocoon.tools.rcl.wrapper.servlet.ReloadingServletFilter.doFilter(ReloadingServletFilter.java:51)
>
>                 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:726)
>
>                 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:324)
>
>                 at
> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
>
>                 at
> org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:828)
>
>                 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:380)
>
>                 at
> org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:228)
>
>                 at
> org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:450)
>
> Caused by: org.apache.cocoon.ProcessingException: Failed to process reader
>
>                 at <map:read type="servletLinkRewriter"> -
> file:///C:/WINDOWS/TEMP/Jetty_0_0_0_0_0_webapp____75ty4m/blocks/cocoon-forms-impl/sitemap.xmap:59:104
>
>                 at <map:match> -
> file:///C:/WINDOWS/TEMP/Jetty_0_0_0_0_0_webapp____75ty4m/blocks/cocoon-forms-impl/sitemap.xmap:58:58
>
>                 at
> org.apache.cocoon.ProcessingException.throwLocated(ProcessingException.java:111)
>
>                 at
> org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.handleException(AbstractProcessingPipeline.java:944)
>
>                 at
> org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline.processReader(AbstractCachingProcessingPipeline.java:918)
>
>                 at
> org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.process(AbstractProcessingPipeline.java:436)
>
>                 at
> sun.reflect.GeneratedMethodAccessor276.invoke(Unknown Source)
>
>                 at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>
>                 at java.lang.reflect.Method.invoke(Method.java:585)
>
>                 at
> org.apache.cocoon.core.container.spring.avalon.PoolableProxyHandler.invoke(PoolableProxyHandler.java:71)
>
>                 at $Proxy68.process(Unknown Source)
>
>                 at
> org.apache.cocoon.components.treeprocessor.sitemap.ReadNode.invoke(ReadNode.java:94)
>
>                 at
> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:55)
>
>                 at
> org.apache.cocoon.components.treeprocessor.sitemap.MatchNode.invoke(MatchNode.java:87)
>
>                 at
> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:78)
>
>                 at
> org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:143)
>
>                 at
> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:78)
>
>                 at
> org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:81)
>
>                 at
> org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:241)
>
>                 at
> org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:173)
>
>                 at
> org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:247)
>
>                 at
> org.apache.cocoon.servlet.RequestProcessor.process(RequestProcessor.java:347)
>
>                 at
> org.apache.cocoon.servlet.RequestProcessor.service(RequestProcessor.java:169)
>
>                 ... 57 more
>
> Caused by: org.mortbay.jetty.EofException
>
>                 at
> org.mortbay.jetty.HttpGenerator.flush(HttpGenerator.java:760)
>
>                 at
> org.mortbay.jetty.AbstractGenerator$Output.flush(AbstractGenerator.java:566)
>
>                 at
> org.mortbay.jetty.HttpConnection$Output.flush(HttpConnection.java:910)
>
>                 at
> org.mortbay.jetty.AbstractGenerator$Output.write(AbstractGenerator.java:614)
>
>                 at
> org.apache.cocoon.servletservice.HttpServletResponseBufferingWrapper$ForwardingOrLimitingServletOutputStream.write(HttpServletResponseBufferingWrapper.java:281)
>
>                 at java.io.OutputStream.write(OutputStream.java:99)
>
>                 at java.io.OutputStream.write(OutputStream.java:58)
>
>                 at
> org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline.processReader(AbstractCachingProcessingPipeline.java:834)
>
>                 ... 75 more
>
> Caused by: java.net.SocketException: Connection reset by peer: socket
> write error
>
>                 at java.net.SocketOutputStream.socketWrite0(Native Method)
>
>                 at
> java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
>
>                 at
> java.net.SocketOutputStream.write(SocketOutputStream.java:136)
>
>                 at
> org.mortbay.io.ByteArrayBuffer.writeTo(ByteArrayBuffer.java:169)
>
>                 at
> org.mortbay.io.bio.StreamEndPoint.flush(StreamEndPoint.java:122)
>
>                 at
> org.mortbay.jetty.HttpGenerator.flush(HttpGenerator.java:693)
>
>                 ... 82 more
>
> Does anyone have a clue, what could be the issue?
>
> cheers,
>
> Gabriel
> ______________________
> Mag. Gabriel Gruber
> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
> Workflow EDV GmbH, Dannebergplatz 6/23, A-1030 Wien


-- 
Simone Gianni            CEO Semeru s.r.l.           Apache Committer
http://www.simonegianni.it/


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to