Author: markt Date: Sun Jan 28 09:28:36 2007 New Revision: 500843 URL: http://svn.apache.org/viewvc?view=rev&rev=500843 Log: Update JspException to align with the JSP 2.1 spec. Update root cause finding to take advantage of being able to use getCause
Modified: tomcat/tc6.0.x/trunk/java/javax/servlet/jsp/JspException.java tomcat/tc6.0.x/trunk/java/org/apache/catalina/core/StandardWrapper.java tomcat/tc6.0.x/trunk/java/org/apache/catalina/valves/ErrorReportValve.java Modified: tomcat/tc6.0.x/trunk/java/javax/servlet/jsp/JspException.java URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/javax/servlet/jsp/JspException.java?view=diff&rev=500843&r1=500842&r2=500843 ============================================================================== --- tomcat/tc6.0.x/trunk/java/javax/servlet/jsp/JspException.java (original) +++ tomcat/tc6.0.x/trunk/java/javax/servlet/jsp/JspException.java Sun Jan 28 09:28:36 2007 @@ -48,55 +48,51 @@ /** - * Constructs a new JSP exception when the JSP - * needs to throw an exception and include a message - * about the "root cause" exception that interfered with its - * normal operation, including a description message. - * + * Constructs a new <code>JSPException</code> with the specified detail + * message and cause. The cause is saved for later retrieval by the + * <code>java.lang.Throwable.getCause()</code> and [EMAIL PROTECTED] #getRootCause()} + * methods. + * + * @see <code>java.lang.Exception.Exception(String, Throwable)</code> * * @param message a <code>String</code> containing the text of the * exception message * - * @param rootCause the <code>Throwable</code> exception that - * interfered with the servlet's normal operation, - * making this servlet exception necessary + * @param cause the <code>Throwable</code> exception that + * interfered with the JSP's normal operation, + * making this JSP exception necessary */ - public JspException(String message, Throwable rootCause) { - super(message); - this.rootCause = rootCause; + public JspException(String message, Throwable cause) { + super(message, cause); } /** - * Constructs a new JSP exception when the JSP - * needs to throw an exception and include a message - * about the "root cause" exception that interfered with its - * normal operation. The exception's message is based on the localized - * message of the underlying exception. - * - * <p>This method calls the <code>getLocalizedMessage</code> method - * on the <code>Throwable</code> exception to get a localized exception - * message. When subclassing <code>JspException</code>, - * this method can be overridden to create an exception message - * designed for a specific locale. + * Constructs a new <code>JSPException</code> with the specified cause. + * The cause is saved for later retrieval by the + * <code>java.lang.Throwable.getCause()</code> and [EMAIL PROTECTED] #getRootCause()} + * methods. + * + * @see <code>java.lang.Exception.Exception(Throwable)</code> * - * @param rootCause the <code>Throwable</code> exception that + * @param cause the <code>Throwable</code> exception that * interfered with the JSP's normal operation, making * the JSP exception necessary */ - public JspException(Throwable rootCause) { - super(rootCause.getLocalizedMessage()); - this.rootCause = rootCause; + public JspException(Throwable cause) { + super(cause); } /** + * @deprecated As of JSP 2.1, replaced by + * <code>java.lang.Throwable.getCause()</code> + * * Returns the exception that caused this JSP exception. * * @return the <code>Throwable</code> that caused this JSP exception - * */ public Throwable getRootCause() { Modified: tomcat/tc6.0.x/trunk/java/org/apache/catalina/core/StandardWrapper.java URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/catalina/core/StandardWrapper.java?view=diff&rev=500843&r1=500842&r2=500843 ============================================================================== --- tomcat/tc6.0.x/trunk/java/org/apache/catalina/core/StandardWrapper.java (original) +++ tomcat/tc6.0.x/trunk/java/org/apache/catalina/core/StandardWrapper.java Sun Jan 28 09:28:36 2007 @@ -62,7 +62,6 @@ import org.apache.catalina.security.SecurityUtil; import org.apache.catalina.util.Enumerator; import org.apache.catalina.util.InstanceSupport; -import org.apache.tomcat.util.IntrospectionUtils; import org.apache.tomcat.util.log.SystemLogHandler; import org.apache.tomcat.util.modeler.Registry; @@ -295,18 +294,6 @@ protected static Properties restrictedServlets = null; - private static Class jspExceptionClazz; - - static { - try { - jspExceptionClazz = Class.forName("javax.servlet.jsp.JspException"); - } catch (ClassNotFoundException e) { - // Expected if jsp-api not on classpath, eg when embedding - jspExceptionClazz = null; - } - } - - // ------------------------------------------------------------- Properties @@ -709,11 +696,7 @@ return theException; } - if (jspExceptionClazz!=null && - jspExceptionClazz.isAssignableFrom(theRootCause.getClass())) { - deeperRootCause = (Throwable)IntrospectionUtils.getProperty( - theRootCause, "rootCause"); - } else if (theRootCause instanceof SQLException) { + if (theRootCause instanceof SQLException) { deeperRootCause = ((SQLException) theRootCause).getNextException(); } if (deeperRootCause == null) { Modified: tomcat/tc6.0.x/trunk/java/org/apache/catalina/valves/ErrorReportValve.java URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/catalina/valves/ErrorReportValve.java?view=diff&rev=500843&r1=500842&r2=500843 ============================================================================== --- tomcat/tc6.0.x/trunk/java/org/apache/catalina/valves/ErrorReportValve.java (original) +++ tomcat/tc6.0.x/trunk/java/org/apache/catalina/valves/ErrorReportValve.java Sun Jan 28 09:28:36 2007 @@ -34,7 +34,6 @@ import org.apache.catalina.util.RequestUtil; import org.apache.catalina.util.ServerInfo; import org.apache.catalina.util.StringManager; -import org.apache.tomcat.util.IntrospectionUtils; /** * <p>Implementation of a Valve that outputs HTML error pages.</p> @@ -73,18 +72,6 @@ StringManager.getManager(Constants.Package); - private static Class jspExceptionClazz; - - static { - try { - jspExceptionClazz = Class.forName("javax.servlet.jsp.JspException"); - } catch (ClassNotFoundException e) { - // Expected if jsp-api not on classpath, eg when embedding - jspExceptionClazz = null; - } - } - - // ------------------------------------------------------------- Properties @@ -241,12 +228,7 @@ sb.append("</pre></p>"); // In case root cause is somehow heavily nested try { - if (jspExceptionClazz!=null && - jspExceptionClazz.isAssignableFrom( - rootCause.getClass())) { - nestedRootCause = (Throwable)IntrospectionUtils. - getProperty(rootCause, "rootCause"); - } else if (rootCause instanceof SQLException) { + if (rootCause instanceof SQLException) { nestedRootCause = ((SQLException) rootCause). getNextException(); } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]