Tomcat 4 implements the servlet2.3 spec, although I'm not sure the spec
itself is final already.

And Tomcat 4 runs fine on jdk1.3, so I don't suppose they (and thus the
spec) use the jdk1.4 features. 

tomK


> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] 
> Sent: vrijdag 16 november 2001 12:26
> To: Struts Developers List
> Subject: RE: Exception handling --- suggestion for 
> improvements ---- (e.g., templatetag masks original 
> exception) correction in sample code
> 
> 
> 
> Ahh, oops.
> 
> Or, use the servlet 2.3 API when it comes out (anyone know if 
> that API uses
> the new Java 1.4 feature?).
> 
> M
> 
> 
> 
>                                                               
>                                                               
>                      
>                     "Tom Klaasen                              
>                                                               
>                      
>                     (TeleRelay)"            To:     "Struts 
> Developers List" <[EMAIL PROTECTED]>              
>                        
>                     <tom.klaasen@tele       cc:               
>                                                               
>                      
>                     relay.com>              Subject:     RE: 
> Exception handling --- suggestion for improvements ---- 
> (e.g., template tag masks   
>                                              original 
> exception) correction in sample code                          
>                              
>                     11/16/2001 03:33                          
>                                                               
>                      
>                     PM                                        
>                                                               
>                      
>                     Please respond to                         
>                                                               
>                      
>                     "Struts                                   
>                                                               
>                      
>                     Developers List"                          
>                                                               
>                      
>                                                               
>                                                               
>                      
>                                                               
>                                                               
>                      
> 
> 
> 
> 
> OK, my mistake, this seems to be valid only for servlet 2.3 spec, not
> 2.2. Servlet 2.2 has no such feature whatsoever.
> 
> For my defense, I can say that Sun should use the @since tag 
> more often
> ;)
> 
> tomK
> 
> 
> > -----Original Message-----
> > From: Tom Klaasen (TeleRelay)
> > Sent: vrijdag 16 november 2001 9:49
> > To: Struts Developers List
> > Subject: RE: Exception handling --- suggestion for
> > improvements ---- (e.g., template tag masks original
> > exception) correction in sample code
> >
> >
> > Maybe I'll have to disappoint you about constructing a new Exception
> > class.
> > Did you have a look at
> > http://java.sun.com/j2ee/sdk_1.3/techdocs/api/javax/servlet/js
> > p/JspExcep
> > tion.html#JspException(java.lang.String,%20java.lang.Throwable
> > ) ? Looks
> > to me this does _exactly_ what you're trying to do.
> >
> > However, I agree that Struts should not call new
> > JspException(e.getMessage()), but new JspException("Some intelligent
> > message", e); instead. This leaves the decision of what to 
> display to
> > the programmer.
> >
> > tomK
> >
> >
> >
> > > -----Original Message-----
> > > From: Rick Hightower [mailto:[EMAIL PROTECTED]]
> > > Sent: vrijdag 16 november 2001 9:24
> > > To: Struts Developers List
> > > Subject: Exception handling --- suggestion for improvements
> > > ---- (e.g., template tag masks original exception) correction
> > > in sample code
> > >
> > >
> > >
> > > We have been using struts for a good while. We really dig the
> > > framework,
> > > but...
> > >
> > > Often times the struts tags catch the original exception (e.g.,
> > > ClassCastException), and then throw a JspException; thus, 
> losing the
> > > original stack trace. This hides\masks the original
> > > exception. Hiding the
> > > orginal stack trace makes it harder to debug the problem.
> > >
> > > I wrote a JSPWrapperException that preserves the orginal
> > > stack trace for
> > > debugging.
> > > JSPWrapperException extends JspWrapper; however, like
> > > ServletException, it
> > > captures the original stack trace and displays it for
> > > debugging, i.e., the
> > > JSPWrapperException prints out the original stack trace of
> > > the original
> > > exception. This is a real boon for debugging.
> > >
> > > I modified 50 or so files in our copy of the struts code 
> base (a 1.0
> > > derivative with some bug fixes and extra error handing) to use the
> > > JSPWrapperException instead of the JspException.
> > >
> > > It cost about an hour to make the changes, but I feel it will
> > > save us hours
> > > of debugging in the future.
> > >
> > > There is an ant build file with struts so making the changes
> > > and creating
> > > struts.jar was easy.
> > >
> > >
> > >
> > > I search the struts code base for code like this.... 
> (example code)
> > >
> > > try{
> > > }
> > > catch(XYZException e){
> > >        throw new JspException(e.getMessage());
> > > }
> > >
> > > to code that looks like this
> > > try{
> > > }
> > > catch(XYZException e){
> > >        throw new JspWrapperException(e, e.getMessage());
> > > }
> > >
> > >
> > > BTW Here is the code for JspWrapperException....
> > >
> > > Enjoy.....
> > >
> > > /*
> > >  * JspWrapperException.java
> > >  *
> > >  * Created on November 15, 2001, 11:14 PM
> > >  */
> > >
> > > package org.apache.struts.util;
> > > import javax.servlet.jsp.JspException;
> > >
> > > /**
> > >  *
> > >  * @author  rick
> > >  */
> > > public class JspWrapperException extends JspException  {
> > >
> > >         Exception e;
> > >
> > >     /**
> > >      * @param     Exception e
> > >      * @param     String message
> > >      */
> > >     public JspWrapperException(Exception e, String message) {
> > >         super(message);
> > >         this.e = e;
> > >     }
> > >
> > >     /**
> > >      */
> > >     public void printStackTrace () {
> > >         super.printStackTrace();
> > >         String sep = System.getProperty("line.separator", "\r\n");
> > >         if (e != null) {
> > >             System.err.println("--------------- extended Exception
> > > nest ----------- ");
> > >             e.printStackTrace();
> > >         }
> > >     }
> > >
> > >     /**
> > >      * @param ps
> > >      */
> > >     public void printStackTrace (java.io.PrintStream ps) {
> > >         super.printStackTrace(ps);
> > >         String sep = System.getProperty("line.separator", "\r\n");
> > >         if (e != null) {
> > >             ps.println("--------------- extended Exception
> > > nest -----------
> > > ");
> > >             e.printStackTrace(ps);
> > >         }
> > >     }
> > >
> > >     /**
> > >      * @param pw
> > >      */
> > >     public void printStackTrace (java.io.PrintWriter pw) {
> > >         super.printStackTrace(pw);
> > >         String sep = System.getProperty("line.separator", "\r\n");
> > >             //
> > >             //Nested exception
> > >         if (e != null) {
> > >             pw.println("--------------- extended Exception
> > > nest -----------
> > > ");
> > >             e.printStackTrace(pw);
> > >         }
> > >     }
> > >
> > >     /**
> > >      * @return
> > >      */
> > >     public String getMessage () {
> > >         StringBuffer message = new StringBuffer(150);
> > >         message.append(super.getMessage());
> > >
> > >             //
> > >             //add Line separator
> > >         String sep = System.getProperty("line.separator", "\r\n");
> > >         message.append(sep);
> > >
> > >             //
> > >             //Add the nested exception
> > >         if (e != null) {
> > >             message.append(e.getMessage());
> > >             //char = props["line.separator"]
> > >         }
> > >         return  message.toString();
> > >     }
> > > }
> > >
> > >
> > >
> > > Rick Hightower
> > > Director of Development
> > > eBlox, Inc.
> > >
> > > Check out our new website!
> > > www.eblox.com
> > >
> > > Contact Info:
> > > eBlox Tucson
> > > phone: 520-615-9345 x103
> > > fax: 520-529-5774
> > >
> > > Rick's stuff:
> > > http://www.eblox.com/people_detail.php?id=52
> > > http://www.geocities.com/rick_m_hightower/
> > > http://www.brainbench.com/transcript.jsp?pid=2351036
> > >
> > >
> > > --
> > > To unsubscribe, e-mail:
> > > <mailto:struts-dev-> [EMAIL PROTECTED]>
> > > For
> > > additional commands,
> > > e-mail: <mailto:[EMAIL PROTECTED]>
> > >
> > >
> > >
> > > --
> > > To unsubscribe, e-mail:
> > > <mailto:struts-dev-> [EMAIL PROTECTED]>
> > > For
> > > additional commands,
> > > e-mail: <mailto:[EMAIL PROTECTED]>
> > >
> > >
> >
> > --
> > To unsubscribe, e-mail:
> > <mailto:struts-dev-> [EMAIL PROTECTED]>
> > For
> > additional commands,
> > e-mail: <mailto:[EMAIL PROTECTED]>
> >
> >
> 
> --
> To unsubscribe, e-mail:   
> <mailto:struts-dev-> [EMAIL PROTECTED]
> >
> For 
> additional commands, 
> e-mail: <mailto:[EMAIL PROTECTED]
> >
> 
> 
> 
> 
> 
> 
> --
> To unsubscribe, e-mail:   
> <mailto:struts-dev-> [EMAIL PROTECTED]>
> For 
> additional commands, 
> e-mail: <mailto:[EMAIL PROTECTED]>
> 
> 

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to