The Exception below is produced by this JSP-Page: <!-- $Id: index.jsp,v 1.39 2004/10/31 20:45:29 sven Exp $ --> <%@ page import="java.io.*" %> <% response.reset(); OutputStream os = response.getOutputStream(); os.write(0); os.close(); %> The Exception: Servlet.service() for servlet jsp threw exception java.lang.IllegalStateException: getOutputStream() has already been called for t his response at org.apache.catalina.connector.Response.getWriter(Response.java:596) at org.apache.catalina.connector.ResponseFacade.getWriter(ResponseFacade.java:186) at org.apache.jasper.runtime.JspWriterImpl.initOut(JspWriterImpl.java:124) at org.apache.jasper.runtime.JspWriterImpl.flushBuffer(JspWriterImpl.java:117) at org.apache.jasper.runtime.PageContextImpl.release(PageContextImpl.java:191) at org.apache.jasper.runtime.JspFactoryImpl.internalReleasePageContext(JspFactoryImpl.java:115) at org.apache.jasper.runtime.JspFactoryImpl.releasePageContext(JspFactoryImpl.java:75) at org.apache.jsp.test.index_jsp._jspService(org.apache.jsp.test.index_jsp:61) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:99) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:325) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:245) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at de.djh.servlet.filter.SetDates.doFilter(SetDates.java:80) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:825) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:738) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:526) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684) at java.lang.Thread.run(Unknown Source)
The fact that you're calling reset doesn't change the fact that you still have a pointer to the writer.
The JSP-Page <!-- $Id: index.jsp,v 1.39 2004/10/31 20:45:29 sven Exp $ --> <%@ page import="java.io.*" %> <%@ page import="java.util.*" %> <% response.reset(); response.setContentType("text/html"); OutputStream os = response.getOutputStream(); os.write("wurst".getBytes()); os.close(); return; %> works as expected, the client will get 5 bytes of content. Only the cleanup-code in a finally-block in the compiled JSP-Page causes the exception.
If you want to discuss fine points in the specification (such as JSP's usage of a writer), you should IMO try somewhere other than bugzilla. Thank you, and please do not reopen the report.