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");