You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by na...@apache.org on 2001/03/11 22:41:41 UTC

cvs commit: jakarta-tomcat/src/tests/webpages error402.html

nacho       01/03/11 13:41:41

  Modified:    src/tests/webpages/WEB-INF web.xml test-tomcat.xml
  Added:       src/tests/webpages/WEB-INF/classes error402.java
               src/tests/share/tests/jsp/Golden error402.html.txt
               src/tests/webpages error402.html
  Log:
  Test for Bugzilla#291
  
  Using an html file as the <location> in an <error-page>
  in web.xml causes a StackOverflowError. BugRat Report#538
  
  Reported by: Catherine.Jung@netcentricsystems.net (Catherine Jung)
  
  Actually the fail obtained in Tomcat 3.3 is not the one reported,
  this report was for 3.2.1
  
  But it's actually a bug in the error handling in TC3.3, when a error is redirected
  to a html page, the static interceptor actually gives a not found error (404), because
  the passed request is the old request uri  ( the one of the failing servlet )
  not the html  error page,  thus giving a 402.
  
  i will try to reproduce  it on 3.2.2 too.
  
  Revision  Changes    Path
  1.9       +139 -151  jakarta-tomcat/src/tests/webpages/WEB-INF/web.xml
  
  Index: web.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat/src/tests/webpages/WEB-INF/web.xml,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- web.xml	2000/12/13 19:58:04	1.8
  +++ web.xml	2001/03/11 21:41:41	1.9
  @@ -1,219 +1,207 @@
   <?xml version="1.0" encoding="ISO-8859-1"?>
  -
  -<!DOCTYPE web-app
  -    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
  +<!-- edited with XML Spy v3.0 NT (http://www.xmlspy.com) by Hippo (Hippo Ltd.) -->
  +<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
       "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
  -
   <web-app>
  -    <servlet>
  -        <servlet-name>
  +	<servlet>
  +		<servlet-name>
               servlet1
           </servlet-name>
  -        <servlet-class>
  +		<servlet-class>
               requestMap.Servlet1
           </servlet-class>
  -    </servlet>
  -    <servlet>
  -        <servlet-name>
  +	</servlet>
  +	<servlet>
  +		<servlet-name>
               servlet2
           </servlet-name>
  -        <servlet-class>
  +		<servlet-class>
               requestMap.Servlet2
           </servlet-class>
  -    </servlet>
  -    <servlet>
  -        <servlet-name>
  +	</servlet>
  +	<servlet>
  +		<servlet-name>
               servlet3
           </servlet-name>
  -        <servlet-class>
  +		<servlet-class>
               requestMap.Servlet3
           </servlet-class>
  -    </servlet>
  -    <servlet>
  -        <servlet-name>
  +	</servlet>
  +	<servlet>
  +		<servlet-name>
               servlet4
           </servlet-name>
  -        <servlet-class>
  +		<servlet-class>
               requestMap.Servlet4
           </servlet-class>
  -    </servlet>
  -
  -        <servlet>
  -      <servlet-name>
  +	</servlet>
  +	<servlet>
  +		<servlet-name>
             jspParams1
         </servlet-name>
  -      <jsp-file>
  +		<jsp-file>
             /jsp/params.jsp
         </jsp-file>
  -      <init-param>
  -        <param-name>abc</param-name>
  -        <param-value>def</param-value>
  -      </init-param>
  -    </servlet>
  -    <servlet>
  -      <servlet-name>
  +		<init-param>
  +			<param-name>abc</param-name>
  +			<param-value>def</param-value>
  +		</init-param>
  +	</servlet>
  +	<servlet>
  +		<servlet-name>
             jspParams2.jsp
         </servlet-name>
  -      <jsp-file>
  +		<jsp-file>
             /jsp/params.jsp
         </jsp-file>
  -      <init-param>
  -        <param-name>xyz</param-name>
  -        <param-value>klm</param-value>
  -      </init-param>
  -    </servlet>
  -    <servlet>
  -      <servlet-name>
  +		<init-param>
  +			<param-name>xyz</param-name>
  +			<param-value>klm</param-value>
  +		</init-param>
  +	</servlet>
  +	<servlet>
  +		<servlet-name>
             jspParams3
         </servlet-name>
  -      <jsp-file>
  +		<jsp-file>
             /jsp/params.jsp
         </jsp-file>
  -      <init-param>
  -        <param-name>foo</param-name>
  -        <param-value>bar</param-value>
  -      </init-param>
  -      <init-param>
  -        <param-name>foo1</param-name>
  -        <param-value>bar1</param-value>
  -      </init-param>
  -    </servlet>
  -    
  -     <servlet-mapping>
  -        <servlet-name>
  +		<init-param>
  +			<param-name>foo</param-name>
  +			<param-value>bar</param-value>
  +		</init-param>
  +		<init-param>
  +			<param-name>foo1</param-name>
  +			<param-value>bar1</param-value>
  +		</init-param>
  +	</servlet>
  +	<servlet>
  +		<servlet-name>
  +            servletParam1
  +        </servlet-name>
  +		<servlet-class>
  +            ServletParam
  +        </servlet-class>
  +		<init-param>
  +			<param-name>param1</param-name>
  +			<param-value>value1</param-value>
  +		</init-param>
  +		<init-param>
  +			<param-name>param2</param-name>
  +			<param-value>value2</param-value>
  +		</init-param>
  +	</servlet>
  +	<servlet>
  +		<servlet-name>
  +            servletParam2
  +        </servlet-name>
  +		<servlet-class>
  +            ServletParam
  +        </servlet-class>
  +		<init-param>
  +			<param-name>param3</param-name>
  +			<param-value>value3</param-value>
  +		</init-param>
  +		<init-param>
  +			<param-name>param4</param-name>
  +			<param-value>value4</param-value>
  +		</init-param>
  +	</servlet>
  +	<servlet-mapping>
  +		<servlet-name>
              jspParams1            
           </servlet-name>
  -        <url-pattern>
  +		<url-pattern>
               /jsp/jspParams1
           </url-pattern>
  -    </servlet-mapping>
  -    <servlet-mapping>
  -        <servlet-name>
  +	</servlet-mapping>
  +	<servlet-mapping>
  +		<servlet-name>
              jspParams1            
           </servlet-name>
  -        <url-pattern>
  +		<url-pattern>
               /jsp/jspParams11
           </url-pattern>
  -    </servlet-mapping>
  -
  -    <servlet-mapping>
  -        <servlet-name>
  +	</servlet-mapping>
  +	<servlet-mapping>
  +		<servlet-name>
              jspParams2.jsp            
           </servlet-name>
  -        <url-pattern>
  +		<url-pattern>
               /jsp/jspParams2
           </url-pattern>
  -    </servlet-mapping>
  -
  -    <servlet-mapping>
  -        <servlet-name>
  +	</servlet-mapping>
  +	<servlet-mapping>
  +		<servlet-name>
              jspParams2.jsp            
           </servlet-name>
  -        <url-pattern>
  +		<url-pattern>
               /jsp/jspParams2.jsp
           </url-pattern>
  -    </servlet-mapping>
  -
  -    <servlet-mapping>
  -        <servlet-name>
  +	</servlet-mapping>
  +	<servlet-mapping>
  +		<servlet-name>
              jspParams3            
           </servlet-name>
  -        <url-pattern>
  +		<url-pattern>
               /jsp/jspParams3
           </url-pattern>
  -    </servlet-mapping>
  -
  -
  -
  -    <servlet-mapping>
  -        <servlet-name>
  +	</servlet-mapping>
  +	<servlet-mapping>
  +		<servlet-name>
               servlet1
           </servlet-name>
  -        <url-pattern>
  +		<url-pattern>
               /foo/bar/*
           </url-pattern>
  -    </servlet-mapping>
  -    <servlet-mapping>
  -        <servlet-name>
  +	</servlet-mapping>
  +	<servlet-mapping>
  +		<servlet-name>
               servlet2
           </servlet-name>
  -        <url-pattern>
  +		<url-pattern>
               /baz/*
           </url-pattern>
  -    </servlet-mapping>
  -    <servlet-mapping>
  -        <servlet-name>
  +	</servlet-mapping>
  +	<servlet-mapping>
  +		<servlet-name>
               servlet3
           </servlet-name>
  -        <url-pattern>
  +		<url-pattern>
               /catalog
           </url-pattern>
  -    </servlet-mapping>
  -    <servlet-mapping>
  -        <servlet-name>
  +	</servlet-mapping>
  +	<servlet-mapping>
  +		<servlet-name>
               servlet4
           </servlet-name>
  -        <url-pattern>
  +		<url-pattern>
               *.bop
           </url-pattern>
  -    </servlet-mapping>
  -    
  -    <servlet>
  -        <servlet-name>
  -            servletParam1
  -        </servlet-name>
  -        <servlet-class>
  -            ServletParam
  -        </servlet-class>
  -        <init-param>
  -            <param-name>param1</param-name>
  -            <param-value>value1</param-value>
  -        </init-param>
  -        <init-param>
  -            <param-name>param2</param-name>
  -            <param-value>value2</param-value>
  -        </init-param>
  -    </servlet>          
  -
  -    <servlet>
  -        <servlet-name>
  -            servletParam2
  -        </servlet-name>
  -        <servlet-class>
  -            ServletParam
  -        </servlet-class>
  -        <init-param>
  -            <param-name>param3</param-name>
  -            <param-value>value3</param-value>
  -        </init-param>
  -        <init-param>
  -            <param-name>param4</param-name>
  -            <param-value>value4</param-value>
  -        </init-param>
  -    </servlet>          
  -
  -    <security-constraint>
  -      <web-resource-collection>
  -         <web-resource-name>a</web-resource-name>
  -         <url-pattern>/foo1/*</url-pattern>
  -         <url-pattern>/bar1/*</url-pattern>
  -         <http-method>GET</http-method>
  -         <http-method>POST</http-method>
  -      </web-resource-collection>
  -
  -      <web-resource-collection>
  -         <web-resource-name>a</web-resource-name>
  -         <url-pattern>/foo2/*</url-pattern>
  -         <url-pattern>/bar2/*</url-pattern>
  -      </web-resource-collection>
  -
  -      <auth-constraint>
  -         <role-name>manager</role-name>
  -         <role-name>role1</role-name>
  -      </auth-constraint>
  -
  -      <user-data-constraint>
  -         <transport-guarantee>CONFIDENTIAL</transport-guarantee>
  -      </user-data-constraint>
  -    </security-constraint>
  +	</servlet-mapping>
  +	<error-page>
  +		<error-code>402</error-code>
  +		<location>/error402.html</location>
  +	</error-page>
  +	<security-constraint>
  +		<web-resource-collection>
  +			<web-resource-name>a</web-resource-name>
  +			<url-pattern>/foo1/*</url-pattern>
  +			<url-pattern>/bar1/*</url-pattern>
  +			<http-method>GET</http-method>
  +			<http-method>POST</http-method>
  +		</web-resource-collection>
  +		<web-resource-collection>
  +			<web-resource-name>a</web-resource-name>
  +			<url-pattern>/foo2/*</url-pattern>
  +			<url-pattern>/bar2/*</url-pattern>
  +		</web-resource-collection>
  +		<auth-constraint>
  +			<role-name>manager</role-name>
  +			<role-name>role1</role-name>
  +		</auth-constraint>
  +		<user-data-constraint>
  +			<transport-guarantee>CONFIDENTIAL</transport-guarantee>
  +		</user-data-constraint>
  +	</security-constraint>
   </web-app>
  
  
  
  1.28      +9 -1      jakarta-tomcat/src/tests/webpages/WEB-INF/test-tomcat.xml
  
  Index: test-tomcat.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat/src/tests/webpages/WEB-INF/test-tomcat.xml,v
  retrieving revision 1.27
  retrieving revision 1.28
  diff -u -r1.27 -r1.28
  --- test-tomcat.xml	2001/03/03 22:08:16	1.27
  +++ test-tomcat.xml	2001/03/11 21:41:41	1.28
  @@ -16,7 +16,7 @@
           early tests.
       -->
   
  -     <property name="revision" value="$Revision: 1.27 $" />  
  +     <property name="revision" value="$Revision: 1.28 $" />  
        <property name="host" value="127.0.0.1" />
        <property name="port"     value="8080" />
        <property name="outputType"     value="text" />
  @@ -349,6 +349,14 @@
                returnCode="${http.protocol} 200"
                goldenFile="${gdir}/SimpleForward.txt" 
          />
  +
  +      <httpClient>
  +          <comment>Dispatch to html error page using error-page web.xml element</comment>
  +          <httpRequest path="/test/servlet/error402" />
  +          <httpStatusMatch match="402" />
  +          <headerMatch name="Content-Type" value="text/html" />
  +          <goldenMatch file="${gdir}/error402.html.txt"/>
  +      </httpClient>
   
         <!-- Removed: the test calls RequestDispatcher.include(), and 
              the included servlet throws an exception. 
  
  
  
  1.1                  jakarta-tomcat/src/tests/webpages/WEB-INF/classes/error402.java
  
  Index: error402.java
  ===================================================================
  import javax.servlet.*;
  import javax.servlet.http.*;
  import java.io.*;
  
  public class error402 extends HttpServlet {
  
      public void init(ServletConfig conf)
          throws ServletException
      {
          super.init(conf);
      }
  
      public void service(HttpServletRequest req, HttpServletResponse res)
          throws ServletException, IOException
      {
           res.sendError(HttpServletResponse.SC_PAYMENT_REQUIRED);
      }
  }
  
  
  
  1.1                  jakarta-tomcat/src/tests/share/tests/jsp/Golden/error402.html.txt
  
  Index: error402.html.txt
  ===================================================================
  <html>
  <title>402 error page</title>
  
  <body>
  
  <h2>This is the test error page for the 402 error </h2>
  
  </body>
  </html>
  
  
  1.1                  jakarta-tomcat/src/tests/webpages/error402.html
  
  Index: error402.html
  ===================================================================
  <html>
  <title>402 error page</title>
  
  <body>
  
  <h2>This is the test error page for the 402 error </h2>
  
  </body>
  </html>
  
  

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