Thanks for your prompt replies! I will try supplying my own exception handler. Looking at the struts source code for the exception handler, I see:
// Figure out the error if (ex instanceof ModuleException) { error = ((ModuleException) ex).getActionMessage(); property = ((ModuleException) ex).getProperty(); } else { error = new ActionMessage(ae.getKey(), ex.getMessage()); property = error.getKey(); } This would cause a null pointer exception if ex were null, and I'm not sure what struts would do in that case, (i.e. who catches it if this method throws?) but now I can at least see if this method is getting a null exception. cheers -- Michael Davis http://www.damaru.com Quoting Mark Shifman <[EMAIL PROTECTED]>: > What I do is log the exception and the stack trace and then let the > super do the rest. > Since I was getting null comming up on the error page, I check the > exception message and if it is null > I at least show the name of the exception class name on the error > page > (probably not too pretty but..) > > The log with the stack trace should give you all the stuff you are > looking for. > mas > > > public class YPEDExceptionHandler extends ExceptionHandler { > private static final Log log = > LogFactory.getLog(YPEDExceptionHandler.class); > > public ActionForward execute(Exception ex, ExceptionConfig ae, > ActionMapping mapping, ActionForm formInstance, > HttpServletRequest request, HttpServletResponse > response) > throws ServletException { > //log the user and the stack trace then pass on to the default > exceptionHandler > HttpSession session = request.getSession(); > MySessionCleanerBean user_bean = (MySessionCleanerBean) > session.getAttribute("user_bean"); > if(user_bean != null){ > log.fatal("user: "+ user_bean.getUser_name() + " logon_id: > "+ > user_bean.getLogon_id(),ex); > }else { > log.fatal("no user_bean in session", ex); > } > if(ex.getMessage() == null){ > return super.execute(new > YPEDException(ex.getClass().getName(),ex), ae, mapping, formInstance, > > request, response); > } > > return super.execute(ex, ae, mapping, formInstance, request, > > response); > } > > > Michael Davis wrote: > > >Hello, > > > >I'm working on a struts application which has just been deployed and > is > >being used by a large number of users. I've got an error handler set > up > >using the global-exceptions tag. It sends me an email whenever it > >catches an exception. > > > >My config looks like this: > > > > <global-exceptions> > > <exception type="java.lang.Throwable" > > key="error.error" > > path="/err100.do"/> > > </global-exceptions> > > > >And my code does this: > > > >Throwable e = (Throwable) request.getAttribute( > Globals.EXCEPTION_KEY ); > > > >(remember that Globals.EXCEPTION_KEY is > >"org.apache.struts.action.EXCEPTION"). > > > >Now my problem is that about half the time, e is null, so I can't > >determine where the exception happened or even what it is. > > > >Somehow struts is able to invoke my error handler, but sometimes > does it > >without setting Globals.EXCEPTION_KEY in the request. When does > that > >happen? How can I figure out what caused the error to happen? > > > >thanks very much, > >Michael from Ottawa > > > > > > > > > > > > > >--------------------------------------------------------------------- > >To unsubscribe, e-mail: [EMAIL PROTECTED] > >For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > > > -- > Mark Shifman MD. Ph.D. > Yale Center for Medical Informatics > Phone (203)737-5219 > [EMAIL PROTECTED] > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]