You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by lu...@apache.org on 2003/07/11 03:27:46 UTC

cvs commit: jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/runtime ServletResponseWrapperInclude.java JspRuntimeLibrary.java

luehe       2003/07/10 18:27:46

  Modified:    jasper2/src/share/org/apache/jasper/runtime
                        ServletResponseWrapperInclude.java
                        JspRuntimeLibrary.java
  Log:
  Partial fix for Bugzilla 21440 ("<jsp:include> whose target performs a 'forward' does not behave as expected")
  
  Revision  Changes    Path
  1.3       +32 -24    jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/runtime/ServletResponseWrapperInclude.java
  
  Index: ServletResponseWrapperInclude.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/runtime/ServletResponseWrapperInclude.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- ServletResponseWrapperInclude.java	27 Aug 2002 22:24:42 -0000	1.2
  +++ ServletResponseWrapperInclude.java	11 Jul 2003 01:27:46 -0000	1.3
  @@ -64,49 +64,57 @@
   import java.lang.IllegalStateException;
   import java.io.Writer;
   import java.io.PrintWriter;
  +import java.io.IOException;
   
   import javax.servlet.*;
   import javax.servlet.http.*;
  -import javax.servlet.jsp.*;
  +import javax.servlet.jsp.JspWriter;
   
   /**
  - * ServletResponseWrapper used for the JSP 'include' action.
  + * ServletResponseWrapper used by the JSP 'include' action.
    *
  - * This 'wrapped' response object is passed as the second argument 
  - * to the internal RequestDispatcher.include(). It channels
  - * all output text into the current Writer.
  + * This wrapper response object is passed to RequestDispatcher.include(), so
  + * that the output of the included resource is appended to that of the
  + * including page.
    *
    * @author Pierre Delisle
    */
   
  -public class ServletResponseWrapperInclude
  -    extends HttpServletResponseWrapper
  -{
  +public class ServletResponseWrapperInclude extends HttpServletResponseWrapper {
  +
       /**
  -     * The PrintWriter writes all output to the Writer of the 
  -     * including page.
  +     * PrintWriter which appends to the JspWriter of the including page.
        */
  -    PrintWriter printWriter;
  +    private PrintWriter printWriter;
  +
  +    private JspWriter jspWriter;
   
       public ServletResponseWrapperInclude(ServletResponse response, 
  -					 Writer writer) 
  -    {
  +					 JspWriter jspWriter) {
   	super((HttpServletResponse)response);
  -	this.printWriter = new PrintWriter(writer);
  +	this.printWriter = new PrintWriter(jspWriter);
  +	this.jspWriter = jspWriter;
       }
   
       /**
  -     * Returns a wrapper around the Writer of the including page.
  +     * Returns a wrapper around the JspWriter of the including page.
        */
  -    public java.io.PrintWriter getWriter()
  -	throws java.io.IOException 
  -    {
  +    public PrintWriter getWriter() throws IOException {
   	return printWriter;
       }
   
  -    public ServletOutputStream getOutputStream()
  -	throws java.io.IOException
  -    {
  +    public ServletOutputStream getOutputStream() throws IOException {
   	throw new IllegalStateException();
  +    }
  +
  +    /**
  +     * Clears the output buffer of the JspWriter associated with the including
  +     * page.
  +     */
  +    public void resetBuffer() {
  +	try {
  +	    jspWriter.clearBuffer();
  +	} catch (IOException ioe) {
  +	}
       }
   }
  
  
  
  1.23      +4 -4      jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/runtime/JspRuntimeLibrary.java
  
  Index: JspRuntimeLibrary.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/runtime/JspRuntimeLibrary.java,v
  retrieving revision 1.22
  retrieving revision 1.23
  diff -u -r1.22 -r1.23
  --- JspRuntimeLibrary.java	13 May 2003 19:36:37 -0000	1.22
  +++ JspRuntimeLibrary.java	11 Jul 2003 01:27:46 -0000	1.23
  @@ -984,7 +984,7 @@
       public static void include(ServletRequest request,
                                  ServletResponse response,
                                  String relativePath,
  -                               Writer out,
  +                               JspWriter out,
                                  boolean flush)
           throws IOException, ServletException {
   
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-dev-help@jakarta.apache.org