You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Rock Luiss <li...@neusoft.com> on 2001/09/12 03:37:17 UTC

Attempt to clear a buffer that's already been flushed----------when use ; why?Anybody?

java.io.IOException: Error: Attempt to clear a buffer that's already been flushed
 at org.apache.jasper.runtime.JspWriterImpl.clear(JspWriterImpl.java:180)
 at org.apache.jsp.view_0005fout_jsp._jspService(view_0005fout_jsp.java:1947)
 at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:107)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
 at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:200)
 at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:357)
 at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:431)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:191)
 at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:255)
 at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
 at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
 at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:879)
 at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:225)
 at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
 at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
 at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
 at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
 at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:879)
 at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2175)
 at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
 at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
 at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:446)
 at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
 at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
 at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:879)
 at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:162)
 at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
 at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
 at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:879)
 at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:827)
 at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:904)
 at java.lang.Thread.run(Thread.java:484)

Re: Hello! Graig

Posted by "Craig R. McClanahan" <cr...@apache.org>.
See the JSP Specification, which you can download from

  http://java.sun.com/products/jsp/download.html

In JSP 1.2, it is in Section 2.10.1.

Craig


On Wed, 12 Sep 2001, Rock Luiss wrote:

> Date: Wed, 12 Sep 2001 13:31:26 +0800
> From: Rock Luiss <li...@neusoft.com>
> Reply-To: tomcat-user@jakarta.apache.org
> To: tomcat-user@jakarta.apache.org
> Subject: Hello! Graig
>
>
> Attempt to clear a buffer that's already been flushed----------when use <jsp:forward>; why?Anybody?
>
> How to replace "xxx"? Example?
>


Hello! Graig

Posted by Rock Luiss <li...@neusoft.com>.
Attempt to clear a buffer that's already been flushed----------when use <jsp:forward>; why?Anybody?

How to replace "xxx"? Example?

Re: Attempt to clear a buffer that's already been flushed----------when use ; why?Anybody?

Posted by "Craig R. McClanahan" <cr...@apache.org>.
See the Servlet Specification information about
RequestDispatcher.forward(), available at:

  http://java.sun.com/products/servlet/download.html

Once a response has been committed back to the client, it is not legal to
call RequestDispatcher.forward() (which is what <jsp:forward> does under
the covers), because a forward() tries to erase all the headers -- and
they have already been sent back to the client, so this cannot be done.

A solution is to:
* Move thoe <jsp:forward> call closer towards the beginning of
  your page, or
* Increase the buffer size on your page with the <%@ page buffer="xxx" %>
  directive

Craig

On Wed, 12 Sep 2001, Rock Luiss wrote:

> Date: Wed, 12 Sep 2001 09:37:17 +0800
> From: Rock Luiss <li...@neusoft.com>
> Reply-To: tomcat-user@jakarta.apache.org
> To: tomcat-user@jakarta.apache.org
> Subject: Attempt to clear a buffer that's already been
>     flushed----------when use <jsp:forward>; why?Anybody?
>
> java.io.IOException: Error: Attempt to clear a buffer that's already been flushed
>  at org.apache.jasper.runtime.JspWriterImpl.clear(JspWriterImpl.java:180)
>  at org.apache.jsp.view_0005fout_jsp._jspService(view_0005fout_jsp.java:1947)
>  at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:107)
>  at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
>  at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:200)
>  at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:357)
>  at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:431)
>  at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
>  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)
>  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:191)
>  at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:255)
>  at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
>  at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
>  at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:879)
>  at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:225)
>  at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
>  at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
>  at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
>  at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
>  at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:879)
>  at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2175)
>  at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
>  at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
>  at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:446)
>  at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
>  at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
>  at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:879)
>  at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:162)
>  at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
>  at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
>  at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:879)
>  at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:827)
>  at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:904)
>  at java.lang.Thread.run(Thread.java:484)
>