Java Mailing List Archive

http://www.junlu.com/

Home » Home (12/2007) » JSP Interest »

Re: JasperException wraps ServletException wraps JspException

Paul Copeland

2004-09-12


Hi Jan - Apparently this problem is fixed in Tomcat 5. Tomcat 4.1.30
has the following code which has the effect I outlined below (losing the
stack trace of the original exception). Yet another example of why it is
necessary to test a webapp on all versions of the platform it may be
deployed on. - Paul

    } catch (JasperException ex) {
       throw ex;
    } catch (Exception ex) {
       throw new JasperException(ex);
    }

Jan Luehe wrote:

> Hi Paul,
>
> > When I throw a JspException from a custom tag the PageContext
> > handlePageException() method wraps it in a ServletException
>
> unless the JspException contains a root cause, in which case its root
> cause it wrapped inside the ServletException.

The problem (fixed in Tomcat 5) is that this ServletException is later
wrapped AGAIN in the JasperException....

>
> > and then Tomcat JspServletWrapper.service() wraps that in a
> JasperException
> > (which is also a ServletException). So the original exception is 3 deep
> > and the stack trace of the original exception is not reported in the
> log
> > (and if there is no message, as with a NullPointerException, then there
> > is not even a message about what happened). So there is little or no
> > useful diagnostics. What is the rationale for this behavior? It seems
> > like the service() method should not wrap a ServletException inside a
> > JasperException.
>
> Which version of the sources did you look at?
>
> The Tomcat 5 version of JspServletWrapper.service(), which I attached,
> has this code at the bottom:
>
>      } catch (ServletException ex) {
>      throw ex;
>      } catch (IOException ex) {
>         throw ex;
>      } catch (IllegalStateException ex) {
>         throw ex;
>      } catch (Exception ex) {
>         throw new JasperException(ex);
>      }
>
> which wraps an exception inside a JasperException only if it is
> neither of type ServletException, IOException, and
> IllegalStateException.
>
>
> Jan
>

===========================================================================
To unsubscribe: mailto listserv@(protected)".
For digest: mailto listserv@(protected)".

Some relevant archives, FAQs and Forums on JSPs can be found at:

http://java.sun.com/products/jsp
http://archives.java.sun.com/jsp-interest.html
http://forums.java.sun.com
http://www.jspinsider.com
©2008 junlu.com - Jax Systems, LLC, U.S.A.