You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tapestry.apache.org by Vinicius Carvalho <ja...@gmail.com> on 2006/09/04 22:45:49 UTC

Tapestry: unable to reset response buffer

  Hello there! Few weeks ago I've post a concern about having
opensession in view filter (both spring and hivemind approach) on a
very requested web page.
When we ran our stress test today, we got thousands of the following
exceptions below (we had a few hundred of users accessing the
application, average of 50 requests/second).

Well, since Spring filter is at the bottom of the stack, I believe he
is the one to blame. So we need to remove the opensession for the chat
pages, that are readonly and got thousands
of ajax requests...

The first Ideia I got in mind is simply dumping tapestry for it and
using pure servlets.
I'm pretty worried with the whole sequence of events:

browser -> Spring Filter -> Tapestry Servlet -> Engine Service -> Page
-> EngineService -> Spring Filter -> browser

And using a servlet I'd have:

browser -> Servlet -> browser

Please I'm not by any means criticizing Tapestry. I just would like to
hear from you gurus, if my concern is valid. And if that exception
thrown by tapestry will compromise my application, for example not
returning an exception.

Regards

ERROR ApplicationServerThread-16
org.apache.tapestry.web.ServletWebResponse - Unable to reset response
buffer: Response has already been committed
java.lang.IllegalStateException: Response has already been committed
  at com.evermind.server.http.EvermindHttpServletResponse.resetBuffer(EvermindHttpServletResponse.java:1848)
  at com.evermind.server.http.EvermindHttpServletResponse.reset(EvermindHttpServletResponse.java:1874)
  at com.evermind.server.http.EvermindHttpServletResponse.reset
(EvermindHttpServletResponse.java:1842)
 at org.apache.tapestry.web.ServletWebResponse.reset(ServletWebResponse.java:128)
 at org.apache.tapestry.web.ServletWebResponse.getPrintWriter(ServletWebResponse.java:90)
 at $WebResponse_10d7962d0da.getPrintWriter($WebResponse_10d7962d0da.java)
 at $WebResponse_10d7962cfb6.getPrintWriter($WebResponse_10d7962cfb6.java)
  at org.apache.tapestry.services.impl.ResponseRendererImpl.renderResponse
(ResponseRendererImpl.java:67)
 at $ResponseRenderer_10d7962cfce.renderResponse($ResponseRenderer_10d7962cfce.java)
 at org.apache.tapestry.error.ExceptionPresenterImpl.presentException(ExceptionPresenterImpl.java:46)
 at $ExceptionPresenter_10d7962cfbe.presentException($ExceptionPresenter_10d7962cfbe.java)
  at org.apache.tapestry.engine.AbstractEngine.activateExceptionPage(AbstractEngine.java:121)
  at org.apache.tapestry.engine.AbstractEngine.service (AbstractEngine.java:280)
 at org.apache.tapestry.services.impl.InvokeEngineTerminator.service(InvokeEngineTerminator.java:60)
 at $WebRequestServicer_10d7962d016.service($WebRequestServicer_10d7962d016.java)
 at $WebRequestServicer_10d7962d012.service($WebRequestServicer_10d7962d012.java)
 at org.apache.tapestry.services.impl.WebRequestServicerPipelineBridge.service(WebRequestServicerPipelineBridge.java:56)
 at $ServletRequestServicer_10d7962cff8.service($ServletRequestServicer_10d7962cff8.java)
 at org.apache.tapestry.request.DecodedRequestInjector.service(DecodedRequestInjector.java:55)
 at $ServletRequestServicerFilter_10d7962cff4.service($ServletRequestServicerFilter_10d7962cff4.java)
 at $ServletRequestServicer_10d7962cffa.service($ServletRequestServicer_10d7962cffa.java)
 at org.apache.tapestry.multipart.MultipartDecoderFilter.service(MultipartDecoderFilter.java:52)
 at $ServletRequestServicerFilter_10d7962cff2.service($ServletRequestServicerFilter_10d7962cff2.java)
 at $ServletRequestServicer_10d7962cffa.service($ServletRequestServicer_10d7962cffa.java)
 at org.apache.tapestry.services.impl.SetupRequestEncoding.service(SetupRequestEncoding.java:53)
 at $ServletRequestServicerFilter_10d7962cff6.service($ServletRequestServicerFilter_10d7962cff6.java)
 at $ServletRequestServicer_10d7962cffa.service($ServletRequestServicer_10d7962cffa.java)
 at $ServletRequestServicer_10d7962cfec.service($ServletRequestServicer_10d7962cfec.java)
  at org.apache.tapestry.ApplicationServlet.doService(ApplicationServlet.java:123)
  at org.apache.tapestry.ApplicationServlet.doGet (ApplicationServlet.java:79)
  at javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
  at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
  at com.evermind.server.http.ResourceFilterChain.doFilter
(ResourceFilterChain.java:64)
 at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:174)
  at org.springframework.web.filter.OncePerRequestFilter.doFilter
(OncePerRequestFilter.java:77)
 at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:629)
 at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java
:376)
  at com.evermind.server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:870)
  at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:451)
  at com.evermind.server.http.HttpRequestHandler.serveOneRequest
(HttpRequestHandler.java:218)
  at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:119)
  at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:112)
  at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run
(ServerSocketReadHandler.java:260)
 at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)
 at java.lang.Thread.run(Thread.java:595)

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: Tapestry: unable to reset response buffer

Posted by andyhot <an...@di.uoa.gr>.
Looking at the stacktrace, i get the feeling that the
'java.lang.IllegalStateException: Response has already been committed'
exception is getting thrown while rendering the exception page.

I can't really make out the root cause of this, i.e. what exception the
original
page throws.


Vinicius Carvalho wrote:
>  Hello there! Few weeks ago I've post a concern about having
> opensession in view filter (both spring and hivemind approach) on a
> very requested web page.
> When we ran our stress test today, we got thousands of the following
> exceptions below (we had a few hundred of users accessing the
> application, average of 50 requests/second).
>
> Well, since Spring filter is at the bottom of the stack, I believe he
> is the one to blame. So we need to remove the opensession for the chat
> pages, that are readonly and got thousands
> of ajax requests...
>
> The first Ideia I got in mind is simply dumping tapestry for it and
> using pure servlets.
> I'm pretty worried with the whole sequence of events:
>
> browser -> Spring Filter -> Tapestry Servlet -> Engine Service -> Page
> -> EngineService -> Spring Filter -> browser
>
> And using a servlet I'd have:
>
> browser -> Servlet -> browser
>
> Please I'm not by any means criticizing Tapestry. I just would like to
> hear from you gurus, if my concern is valid. And if that exception
> thrown by tapestry will compromise my application, for example not
> returning an exception.
>
> Regards
>
> ERROR ApplicationServerThread-16
> org.apache.tapestry.web.ServletWebResponse - Unable to reset response
> buffer: Response has already been committed
> java.lang.IllegalStateException: Response has already been committed
>  at
> com.evermind.server.http.EvermindHttpServletResponse.resetBuffer(EvermindHttpServletResponse.java:1848)
>
>  at
> com.evermind.server.http.EvermindHttpServletResponse.reset(EvermindHttpServletResponse.java:1874)
>
>  at com.evermind.server.http.EvermindHttpServletResponse.reset
> (EvermindHttpServletResponse.java:1842)
> at
> org.apache.tapestry.web.ServletWebResponse.reset(ServletWebResponse.java:128)
>
> at
> org.apache.tapestry.web.ServletWebResponse.getPrintWriter(ServletWebResponse.java:90)
>
> at $WebResponse_10d7962d0da.getPrintWriter($WebResponse_10d7962d0da.java)
> at $WebResponse_10d7962cfb6.getPrintWriter($WebResponse_10d7962cfb6.java)
>  at org.apache.tapestry.services.impl.ResponseRendererImpl.renderResponse
> (ResponseRendererImpl.java:67)
> at
> $ResponseRenderer_10d7962cfce.renderResponse($ResponseRenderer_10d7962cfce.java)
>
> at
> org.apache.tapestry.error.ExceptionPresenterImpl.presentException(ExceptionPresenterImpl.java:46)
>
> at
> $ExceptionPresenter_10d7962cfbe.presentException($ExceptionPresenter_10d7962cfbe.java)
>
>  at
> org.apache.tapestry.engine.AbstractEngine.activateExceptionPage(AbstractEngine.java:121)
>
>  at org.apache.tapestry.engine.AbstractEngine.service
> (AbstractEngine.java:280)
> at
> org.apache.tapestry.services.impl.InvokeEngineTerminator.service(InvokeEngineTerminator.java:60)
>
> at
> $WebRequestServicer_10d7962d016.service($WebRequestServicer_10d7962d016.java)
>
> at
> $WebRequestServicer_10d7962d012.service($WebRequestServicer_10d7962d012.java)
>
> at
> org.apache.tapestry.services.impl.WebRequestServicerPipelineBridge.service(WebRequestServicerPipelineBridge.java:56)
>
> at
> $ServletRequestServicer_10d7962cff8.service($ServletRequestServicer_10d7962cff8.java)
>
> at
> org.apache.tapestry.request.DecodedRequestInjector.service(DecodedRequestInjector.java:55)
>
> at
> $ServletRequestServicerFilter_10d7962cff4.service($ServletRequestServicerFilter_10d7962cff4.java)
>
> at
> $ServletRequestServicer_10d7962cffa.service($ServletRequestServicer_10d7962cffa.java)
>
> at
> org.apache.tapestry.multipart.MultipartDecoderFilter.service(MultipartDecoderFilter.java:52)
>
> at
> $ServletRequestServicerFilter_10d7962cff2.service($ServletRequestServicerFilter_10d7962cff2.java)
>
> at
> $ServletRequestServicer_10d7962cffa.service($ServletRequestServicer_10d7962cffa.java)
>
> at
> org.apache.tapestry.services.impl.SetupRequestEncoding.service(SetupRequestEncoding.java:53)
>
> at
> $ServletRequestServicerFilter_10d7962cff6.service($ServletRequestServicerFilter_10d7962cff6.java)
>
> at
> $ServletRequestServicer_10d7962cffa.service($ServletRequestServicer_10d7962cffa.java)
>
> at
> $ServletRequestServicer_10d7962cfec.service($ServletRequestServicer_10d7962cfec.java)
>
>  at
> org.apache.tapestry.ApplicationServlet.doService(ApplicationServlet.java:123)
>
>  at org.apache.tapestry.ApplicationServlet.doGet
> (ApplicationServlet.java:79)
>  at javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
>  at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
>  at com.evermind.server.http.ResourceFilterChain.doFilter
> (ResourceFilterChain.java:64)
> at
> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:174)
>
>  at org.springframework.web.filter.OncePerRequestFilter.doFilter
> (OncePerRequestFilter.java:77)
> at
> com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:629)
>
> at
> com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java
>
> :376)
>  at
> com.evermind.server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:870)
>
>  at
> com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:451)
>
>  at com.evermind.server.http.HttpRequestHandler.serveOneRequest
> (HttpRequestHandler.java:218)
>  at
> com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:119)
>
>  at
> com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:112)
>
>  at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run
> (ServerSocketReadHandler.java:260)
> at
> com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)
>
> at java.lang.Thread.run(Thread.java:595)
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
>
>


-- 
Andreas Andreou - andyhot@apache.org - http://andyhot.di.uoa.gr
Tapestry / Tacos developer
Open Source / J2EE Consulting 


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org