craigmcc    01/05/10 12:20:33

  Modified:    tester/src/tester/org/apache/tester ErrorPage06.java
               tester/web ErrorPage06.jsp
  Log:
  Update tests to reflect corrected behavior on RuntimeException thrown by a
  servlet.  Tighten up the tests in the JSP-error-page case to actually
  validate the received values.
  
  Revision  Changes    Path
  1.3       +16 -25    
jakarta-tomcat-4.0/tester/src/tester/org/apache/tester/ErrorPage06.java
  
  Index: ErrorPage06.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/tester/src/tester/org/apache/tester/ErrorPage06.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- ErrorPage06.java  2001/04/26 16:39:13     1.2
  +++ ErrorPage06.java  2001/05/10 19:20:29     1.3
  @@ -67,7 +67,7 @@
    * the ErrorPage05 servlet returns the appropriate exception.
    *
    * @author Craig R. McClanahan
  - * @version $Revision: 1.2 $ $Date: 2001/04/26 16:39:13 $
  + * @version $Revision: 1.3 $ $Date: 2001/05/10 19:20:29 $
    */
   
   public class ErrorPage06 extends HttpServlet {
  @@ -81,39 +81,24 @@
           PrintWriter writer = response.getWriter();
   
           // Accumulate all the reasons this request might fail
  -        ServletException exception = null;
  -        Throwable rootCause = null;
           StringBuffer sb = new StringBuffer();
           Object value = null;
   
           value = request.getAttribute("javax.servlet.error.exception");
  +        StaticLogger.write("exception is '" + value + "'");
           if (value == null) {
               sb.append(" exception is missing/");
  -        } else if (!(value instanceof javax.servlet.ServletException)) {
  +        } else if (!(value instanceof java.lang.ArithmeticException)) {
               sb.append(" exception class is ");
               sb.append(value.getClass().getName());
               sb.append("/");
  -        } else {
  -            exception = (ServletException) value;
  -            rootCause = exception.getRootCause();
  -        }
  -
  -        if (rootCause == null) {
  -            sb.append(" rootCause is missing/");
  -        } else if (!(rootCause instanceof java.lang.ArithmeticException)) {
  -            sb.append(" rootCause type is ");
  -            sb.append(rootCause.getClass().getName());
  -            sb.append("/");
  -        } else {
  -            String message = rootCause.getMessage();
  -            if (!"ErrorPage05 Threw ArithmeticException".equals(message)) {
  -                sb.append(" rootCause message is ");
  -                sb.append(message);
  -                sb.append("/");
  -            }
           }
   
           value = request.getAttribute("javax.servlet.error.exception_type");
  +        StaticLogger.write("exception_type is '" + value + "'");
  +        if (value != null)
  +            StaticLogger.write("exception_type class is '" +
  +                               value.getClass().getName() + "'");
           if (value == null)
               sb.append(" exception_type is missing/");
           else if (!(value instanceof Class)) {
  @@ -122,23 +107,28 @@
               sb.append("/");
           } else {
               Class clazz = (Class) value;
  -            if (!"javax.servlet.ServletException".equals(clazz.getName())) {
  -                sb.append(" exception_type class is ");
  -                sb.append(clazz.getName());
  +            String name = clazz.getName();
  +            if (!"java.lang.ArithmeticException".equals(name)) {
  +                sb.append(" exception_type is ");
  +                sb.append(name);
                   sb.append("/");
               }
           }
   
           value = request.getAttribute("javax.servlet.error.message");
  +        StaticLogger.write("message is '" + value + "'");
           if (value == null)
               sb.append(" message is missing/");
           else if (!(value instanceof String)) {
               sb.append(" message class is ");
               sb.append(value.getClass().getName());
               sb.append("/");
  +        } else if (!"ErrorPage05 Threw ArithmeticException".equals(value)) {
  +            sb.append(" message is not correct");
           }
   
           value = request.getAttribute("javax.servlet.error.request_uri");
  +        StaticLogger.write("request_uri is '" + value + "'");
           if (value == null)
               sb.append(" request_uri is missing/");
           else if (!(value instanceof String)) {
  @@ -157,6 +147,7 @@
           }
   
           value = request.getAttribute("javax.servlet.error.servlet_name");
  +        StaticLogger.write("servlet_name is '" + value + "'");
           if (value == null)
               sb.append(" servlet_name is missing/");
           else if (!(value instanceof String)) {
  
  
  
  1.2       +84 -1     jakarta-tomcat-4.0/tester/web/ErrorPage06.jsp
  
  Index: ErrorPage06.jsp
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-4.0/tester/web/ErrorPage06.jsp,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ErrorPage06.jsp   2001/04/14 00:03:17     1.1
  +++ ErrorPage06.jsp   2001/05/10 19:20:31     1.2
  @@ -1,4 +1,87 @@
  -<%@ page contentType="text/plain" %>ErrorPage06 PASSED - JSP
  +<%@ page contentType="text/plain" %><%
  +
  +        // Accumulate all the reasons this request might fail
  +        StringBuffer sb = new StringBuffer();
  +        Object value = null;
  +
  +        value = request.getAttribute("javax.servlet.error.exception");
  +        if (value == null) {
  +            sb.append(" exception is missing/");
  +        } else if (!(value instanceof java.lang.ArrayIndexOutOfBoundsException)) {
  +            sb.append(" exception class is ");
  +            sb.append(value.getClass().getName());
  +            sb.append("/");
  +        }
  +
  +        value = request.getAttribute("javax.servlet.error.exception_type");
  +        if (value == null)
  +            sb.append(" exception_type is missing/");
  +        else if (!(value instanceof Class)) {
  +            sb.append(" exception_type class is ");
  +            sb.append(value.getClass().getName());
  +            sb.append("/");
  +        } else {
  +            Class clazz = (Class) value;
  +            String name = clazz.getName();
  +            if (!"java.lang.ArrayIndexOutOfBoundsException".equals(name)) {
  +                sb.append(" exception_type is ");
  +                sb.append(name);
  +                sb.append("/");
  +            }
  +        }
  +
  +        value = request.getAttribute("javax.servlet.error.message");
  +        if (value == null)
  +            sb.append(" message is missing/");
  +        else if (!(value instanceof String)) {
  +            sb.append(" message class is ");
  +            sb.append(value.getClass().getName());
  +            sb.append("/");
  +        } else if (!"ErrorPage05 Threw 
ArrayIndexOutOfBoundsException".equals(value)) {
  +            sb.append(" message is not correct");
  +        }
  +
  +        value = request.getAttribute("javax.servlet.error.request_uri");
  +        if (value == null)
  +            sb.append(" request_uri is missing/");
  +        else if (!(value instanceof String)) {
  +            sb.append(" request_uri class is ");
  +            sb.append(value.getClass().getName());
  +            sb.append("/");
  +        } else {
  +            String request_uri = (String) value;
  +            String test1 = request.getContextPath() + "/ErrorPage05";
  +            String test2 = request.getContextPath() + "/WrappedErrorPage05";
  +            if (!request_uri.equals(test1) && !request_uri.equals(test2)) {
  +                sb.append(" request_uri is ");
  +                sb.append(request_uri);
  +                sb.append("/");
  +            }
  +        }
  +
  +        value = request.getAttribute("javax.servlet.error.servlet_name");
  +        if (value == null)
  +            sb.append(" servlet_name is missing/");
  +        else if (!(value instanceof String)) {
  +            sb.append(" servlet_name class is ");
  +            sb.append(value.getClass().getName());
  +            sb.append("/");
  +        } else {
  +            String servlet_name = (String) value;
  +            if (!"ErrorPage05".equals(servlet_name)) {
  +                sb.append(" servlet_name is ");
  +                sb.append(servlet_name);
  +                sb.append("/");
  +            }
  +        }
  +
  +        // Report ultimate success or failure
  +        if (sb.length() < 1)
  +            out.println("ErrorPage06 PASSED - JSP");
  +        else
  +            out.println("ErrorPage06 FAILED -" + sb.toString());
  +
  +%>
   <%
     Exception e = (Exception)
      request.getAttribute("javax.servlet.error.exception");
  
  
  

Reply via email to