Author: kkolinko Date: Mon Nov 14 01:36:07 2011 New Revision: 1201569 URL: http://svn.apache.org/viewvc?rev=1201569&view=rev Log: Merging revisions r1201521 r1201542 r1201545 r1201546 r1201548 r1201555 r1201556 r1201568 from tomcat/trunk: Improve processing of errors that are wrapped into InvocationTargetException. Rethrow errors that must be rethrown. Part 1 of 2.
Modified: tomcat/tc7.0.x/trunk/java/javax/el/BeanELResolver.java tomcat/tc7.0.x/trunk/java/javax/el/ExpressionFactory.java tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/ApplicationContext.java tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/ApplicationContextFacade.java tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/ApplicationFilterChain.java tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/ApplicationFilterConfig.java tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/ApplicationFilterFactory.java tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/AprLifecycleListener.java tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/AsyncContextImpl.java tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/JreMemoryLeakPreventionListener.java tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/StandardContext.java tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/StandardWrapper.java tomcat/tc7.0.x/trunk/java/org/apache/catalina/deploy/NamingResources.java tomcat/tc7.0.x/trunk/java/org/apache/catalina/loader/WebappClassLoader.java tomcat/tc7.0.x/trunk/java/org/apache/catalina/loader/WebappLoader.java tomcat/tc7.0.x/trunk/java/org/apache/catalina/manager/StatusTransformer.java tomcat/tc7.0.x/trunk/java/org/apache/catalina/manager/util/SessionUtils.java tomcat/tc7.0.x/trunk/java/org/apache/catalina/security/SecurityUtil.java tomcat/tc7.0.x/trunk/java/org/apache/catalina/startup/Bootstrap.java tomcat/tc7.0.x/trunk/java/org/apache/catalina/startup/Tool.java Modified: tomcat/tc7.0.x/trunk/java/javax/el/BeanELResolver.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/javax/el/BeanELResolver.java?rev=1201569&r1=1201568&r2=1201569&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/java/javax/el/BeanELResolver.java (original) +++ tomcat/tc7.0.x/trunk/java/javax/el/BeanELResolver.java Mon Nov 14 01:36:07 2011 @@ -88,9 +88,16 @@ public class BeanELResolver extends ELRe } catch (IllegalAccessException e) { throw new ELException(e); } catch (InvocationTargetException e) { + Throwable cause = e.getCause(); + if (cause instanceof ThreadDeath) { + throw (ThreadDeath) cause; + } + if (cause instanceof VirtualMachineError) { + throw (VirtualMachineError) cause; + } throw new ELException(message(context, "propertyReadError", new Object[] { base.getClass().getName(), - property.toString() }), e.getCause()); + property.toString() }), cause); } catch (Exception e) { throw new ELException(e); } @@ -136,9 +143,16 @@ public class BeanELResolver extends ELRe } catch (IllegalAccessException e) { throw new ELException(e); } catch (InvocationTargetException e) { + Throwable cause = e.getCause(); + if (cause instanceof ThreadDeath) { + throw (ThreadDeath) cause; + } + if (cause instanceof VirtualMachineError) { + throw (VirtualMachineError) cause; + } throw new ELException(message(context, "propertyWriteError", new Object[] { base.getClass().getName(), - property.toString() }), e.getCause()); + property.toString() }), cause); } catch (Exception e) { throw new ELException(e); } @@ -473,7 +487,14 @@ public class BeanELResolver extends ELRe } catch (IllegalAccessException e) { throw new ELException(e); } catch (InvocationTargetException e) { - throw new ELException(e.getCause()); + Throwable cause = e.getCause(); + if (cause instanceof ThreadDeath) { + throw (ThreadDeath) cause; + } + if (cause instanceof VirtualMachineError) { + throw (VirtualMachineError) cause; + } + throw new ELException(cause); } context.setPropertyResolved(true); Modified: tomcat/tc7.0.x/trunk/java/javax/el/ExpressionFactory.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/javax/el/ExpressionFactory.java?rev=1201569&r1=1201568&r2=1201569&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/java/javax/el/ExpressionFactory.java (original) +++ tomcat/tc7.0.x/trunk/java/javax/el/ExpressionFactory.java Mon Nov 14 01:36:07 2011 @@ -200,6 +200,13 @@ public abstract class ExpressionFactory "Unable to create ExpressionFactory of type: " + className, e); } catch (InvocationTargetException e) { + Throwable cause = e.getCause(); + if (cause instanceof ThreadDeath) { + throw (ThreadDeath) cause; + } + if (cause instanceof VirtualMachineError) { + throw (VirtualMachineError) cause; + } throw new ELException( "Unable to create ExpressionFactory of type: " + className, e); Modified: tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/ApplicationContext.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/ApplicationContext.java?rev=1201569&r1=1201568&r2=1201569&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/ApplicationContext.java (original) +++ tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/ApplicationContext.java Mon Nov 14 01:36:07 2011 @@ -997,6 +997,7 @@ public class ApplicationContext } catch (IllegalAccessException e) { throw new ServletException(e); } catch (InvocationTargetException e) { + ExceptionUtils.handleThrowable(e.getCause()); throw new ServletException(e); } catch (NamingException e) { throw new ServletException(e); @@ -1142,6 +1143,7 @@ public class ApplicationContext } catch (IllegalAccessException e) { throw new ServletException(e); } catch (InvocationTargetException e) { + ExceptionUtils.handleThrowable(e.getCause()); throw new ServletException(e); } catch (NamingException e) { throw new ServletException(e); @@ -1301,6 +1303,7 @@ public class ApplicationContext "applicationContext.addListener.iae.cnfe", className), e); } catch (InvocationTargetException e) { + ExceptionUtils.handleThrowable(e.getCause()); throw new IllegalArgumentException(sm.getString( "applicationContext.addListener.iae.cnfe", className), e); @@ -1387,6 +1390,7 @@ public class ApplicationContext } catch (IllegalAccessException e) { throw new ServletException(e); } catch (InvocationTargetException e) { + ExceptionUtils.handleThrowable(e.getCause()); throw new ServletException(e); } catch (NamingException e) { throw new ServletException(e); Modified: tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/ApplicationContextFacade.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/ApplicationContextFacade.java?rev=1201569&r1=1201568&r2=1201569&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/ApplicationContextFacade.java (original) +++ tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/ApplicationContextFacade.java Mon Nov 14 01:36:07 2011 @@ -191,6 +191,7 @@ public class ApplicationContextFacade im return (URL) invokeMethod(context, "getResource", new Object[]{path}); } catch(Throwable t) { + ExceptionUtils.handleThrowable(t); if (t instanceof MalformedURLException){ throw (MalformedURLException)t; } @@ -765,6 +766,7 @@ public class ApplicationContextFacade im try{ return invokeMethod(context, methodName, params); }catch(Throwable t){ + ExceptionUtils.handleThrowable(t); throw new RuntimeException(t.getMessage(), t); } } @@ -870,8 +872,10 @@ public class ApplicationContextFacade im } if (ex instanceof InvocationTargetException) { - realException = - ((InvocationTargetException) ex).getTargetException(); + realException = ex.getCause(); + if (realException == null) { + realException = ex; + } } else { realException = ex; } Modified: tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/ApplicationFilterChain.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/ApplicationFilterChain.java?rev=1201569&r1=1201568&r2=1201569&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/ApplicationFilterChain.java (original) +++ tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/ApplicationFilterChain.java Mon Nov 14 01:36:07 2011 @@ -261,6 +261,7 @@ final class ApplicationFilterChain imple filter, request, response, e); throw e; } catch (Throwable e) { + e = ExceptionUtils.unwrapInvocationTargetException(e); ExceptionUtils.handleThrowable(e); if (filter != null) support.fireInstanceEvent(InstanceEvent.AFTER_FILTER_EVENT, @@ -452,6 +453,7 @@ final class ApplicationFilterChain imple */ throw e; } catch (Throwable e) { + e = ExceptionUtils.unwrapInvocationTargetException(e); ExceptionUtils.handleThrowable(e); /*if (filter != null) support.fireInstanceEvent(InstanceEvent.AFTER_FILTER_EVENT, Modified: tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/ApplicationFilterConfig.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/ApplicationFilterConfig.java?rev=1201569&r1=1201568&r2=1201569&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/ApplicationFilterConfig.java (original) +++ tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/ApplicationFilterConfig.java Mon Nov 14 01:36:07 2011 @@ -40,6 +40,7 @@ import org.apache.catalina.deploy.Filter import org.apache.catalina.security.SecurityUtil; import org.apache.juli.logging.LogFactory; import org.apache.tomcat.InstanceManager; +import org.apache.tomcat.util.ExceptionUtils; import org.apache.tomcat.util.log.SystemLogHandler; import org.apache.tomcat.util.modeler.Registry; import org.apache.tomcat.util.res.StringManager; @@ -313,7 +314,10 @@ public final class ApplicationFilterConf try { ((StandardContext) context).getInstanceManager().destroyInstance(this.filter); } catch (Exception e) { - context.getLogger().error("ApplicationFilterConfig.preDestroy", e); + Throwable t = ExceptionUtils + .unwrapInvocationTargetException(e); + ExceptionUtils.handleThrowable(t); + context.getLogger().error("ApplicationFilterConfig.preDestroy", t); } } } @@ -363,7 +367,10 @@ public final class ApplicationFilterConf try { ((StandardContext) context).getInstanceManager().destroyInstance(this.filter); } catch (Exception e) { - context.getLogger().error("ApplicationFilterConfig.preDestroy", e); + Throwable t = ExceptionUtils + .unwrapInvocationTargetException(e); + ExceptionUtils.handleThrowable(t); + context.getLogger().error("ApplicationFilterConfig.preDestroy", t); } } } Modified: tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/ApplicationFilterFactory.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/ApplicationFilterFactory.java?rev=1201569&r1=1201568&r2=1201569&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/ApplicationFilterFactory.java (original) +++ tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/ApplicationFilterFactory.java Mon Nov 14 01:36:07 2011 @@ -28,6 +28,7 @@ import org.apache.catalina.Wrapper; import org.apache.catalina.comet.CometFilter; import org.apache.catalina.connector.Request; import org.apache.catalina.deploy.FilterMap; +import org.apache.tomcat.util.ExceptionUtils; /** * Factory for the creation and caching of Filters and creation @@ -162,6 +163,8 @@ public final class ApplicationFilterFact // Note: The try catch is there because getFilter has a lot of // declared exceptions. However, the filter is allocated much // earlier + Throwable t = ExceptionUtils.unwrapInvocationTargetException(e); + ExceptionUtils.handleThrowable(t); } if (isCometFilter) { filterChain.addFilter(filterConfig); Modified: tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/AprLifecycleListener.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/AprLifecycleListener.java?rev=1201569&r1=1201568&r2=1201569&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/AprLifecycleListener.java (original) +++ tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/AprLifecycleListener.java Mon Nov 14 01:36:07 2011 @@ -108,6 +108,7 @@ public class AprLifecycleListener try { initializeSSL(); } catch (Throwable t) { + t = ExceptionUtils.unwrapInvocationTargetException(t); ExceptionUtils.handleThrowable(t); log.error(sm.getString("aprListener.sslInit"), t); } @@ -129,6 +130,7 @@ public class AprLifecycleListener try { terminateAPR(); } catch (Throwable t) { + t = ExceptionUtils.unwrapInvocationTargetException(t); ExceptionUtils.handleThrowable(t); log.info(sm.getString("aprListener.aprDestroy")); } @@ -180,6 +182,7 @@ public class AprLifecycleListener patch = clazz.getField("TCN_PATCH_VERSION").getInt(null); apver = major * 1000 + minor * 100 + patch; } catch (Throwable t) { + t = ExceptionUtils.unwrapInvocationTargetException(t); ExceptionUtils.handleThrowable(t); log.info(sm.getString("aprListener.aprInit", System.getProperty("java.library.path"))); @@ -196,6 +199,7 @@ public class AprLifecycleListener // is below required. terminateAPR(); } catch (Throwable t) { + t = ExceptionUtils.unwrapInvocationTargetException(t); ExceptionUtils.handleThrowable(t); } return; Modified: tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/AsyncContextImpl.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/AsyncContextImpl.java?rev=1201569&r1=1201568&r2=1201569&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/AsyncContextImpl.java (original) +++ tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/AsyncContextImpl.java Mon Nov 14 01:36:07 2011 @@ -48,6 +48,7 @@ import org.apache.coyote.RequestInfo; import org.apache.juli.logging.Log; import org.apache.juli.logging.LogFactory; import org.apache.tomcat.InstanceManager; +import org.apache.tomcat.util.ExceptionUtils; import org.apache.tomcat.util.res.StringManager; /** * @@ -239,6 +240,7 @@ public class AsyncContextImpl implements ServletException se = new ServletException(e); throw se; } catch (InvocationTargetException e) { + ExceptionUtils.handleThrowable(e.getCause()); ServletException se = new ServletException(e); throw se; } catch (NamingException e) { Modified: tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/JreMemoryLeakPreventionListener.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/JreMemoryLeakPreventionListener.java?rev=1201569&r1=1201568&r2=1201569&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/JreMemoryLeakPreventionListener.java (original) +++ tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/JreMemoryLeakPreventionListener.java Mon Nov 14 01:36:07 2011 @@ -35,6 +35,7 @@ import org.apache.catalina.LifecycleEven import org.apache.catalina.LifecycleListener; import org.apache.juli.logging.Log; import org.apache.juli.logging.LogFactory; +import org.apache.tomcat.util.ExceptionUtils; import org.apache.tomcat.util.res.StringManager; /** @@ -314,6 +315,7 @@ public class JreMemoryLeakPreventionList log.error(sm.getString("jreLeakListener.gcDaemonFail"), e); } catch (InvocationTargetException e) { + ExceptionUtils.handleThrowable(e.getCause()); log.error(sm.getString("jreLeakListener.gcDaemonFail"), e); } @@ -345,6 +347,7 @@ public class JreMemoryLeakPreventionList log.warn(sm.getString("jreLeakListener.authPolicyFail"), e); } catch (InvocationTargetException e) { + ExceptionUtils.handleThrowable(e.getCause()); log.warn(sm.getString("jreLeakListener.authPolicyFail"), e); } Modified: tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/StandardContext.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/StandardContext.java?rev=1201569&r1=1201568&r2=1201569&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/StandardContext.java (original) +++ tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/StandardContext.java Mon Nov 14 01:36:07 2011 @@ -4625,6 +4625,7 @@ public class StandardContext extends Con new ApplicationFilterConfig(this, filterDefs.get(name)); filterConfigs.put(name, filterConfig); } catch (Throwable t) { + t = ExceptionUtils.unwrapInvocationTargetException(t); ExceptionUtils.handleThrowable(t); getLogger().error (sm.getString("standardContext.filterStart", name), t); @@ -4699,6 +4700,7 @@ public class StandardContext extends Con try { results[i] = instanceManager.newInstance(listeners[i]); } catch (Throwable t) { + t = ExceptionUtils.unwrapInvocationTargetException(t); ExceptionUtils.handleThrowable(t); getLogger().error (sm.getString("standardContext.applicationListener", @@ -4814,6 +4816,7 @@ public class StandardContext extends Con try { getInstanceManager().destroyInstance(listeners[j]); } catch (Throwable t) { + t = ExceptionUtils.unwrapInvocationTargetException(t); ExceptionUtils.handleThrowable(t); getLogger().error (sm.getString("standardContext.listenerStop", @@ -4833,6 +4836,7 @@ public class StandardContext extends Con try { getInstanceManager().destroyInstance(listeners[j]); } catch (Throwable t) { + t = ExceptionUtils.unwrapInvocationTargetException(t); ExceptionUtils.handleThrowable(t); getLogger().error (sm.getString("standardContext.listenerStop", Modified: tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/StandardWrapper.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/StandardWrapper.java?rev=1201569&r1=1201568&r2=1201569&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/StandardWrapper.java (original) +++ tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/StandardWrapper.java Mon Nov 14 01:36:07 2011 @@ -1140,6 +1140,7 @@ public class StandardWrapper extends Con throw new ServletException (sm.getString("standardWrapper.notServlet", servletClass), e); } catch (Throwable e) { + e = ExceptionUtils.unwrapInvocationTargetException(e); ExceptionUtils.handleThrowable(e); unavailable(null); @@ -1472,6 +1473,7 @@ public class StandardWrapper extends Con } } catch (Throwable t) { + t = ExceptionUtils.unwrapInvocationTargetException(t); ExceptionUtils.handleThrowable(t); instanceSupport.fireInstanceEvent (InstanceEvent.AFTER_DESTROY_EVENT, instance, t); @@ -1521,6 +1523,7 @@ public class StandardWrapper extends Con } } } catch (Throwable t) { + t = ExceptionUtils.unwrapInvocationTargetException(t); ExceptionUtils.handleThrowable(t); instancePool = null; nInstances = 0; Modified: tomcat/tc7.0.x/trunk/java/org/apache/catalina/deploy/NamingResources.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/catalina/deploy/NamingResources.java?rev=1201569&r1=1201568&r2=1201569&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/java/org/apache/catalina/deploy/NamingResources.java (original) +++ tomcat/tc7.0.x/trunk/java/org/apache/catalina/deploy/NamingResources.java Mon Nov 14 01:36:07 2011 @@ -40,6 +40,7 @@ import org.apache.catalina.util.Lifecycl import org.apache.juli.logging.Log; import org.apache.juli.logging.LogFactory; import org.apache.naming.ContextBindings; +import org.apache.tomcat.util.ExceptionUtils; import org.apache.tomcat.util.res.StringManager; @@ -1033,8 +1034,10 @@ public class NamingResources extends Lif log.warn(sm.getString("namingResources.cleanupCloseFailed", closeMethod, name, container), e); } catch (InvocationTargetException e) { + Throwable t = ExceptionUtils.unwrapInvocationTargetException(e); + ExceptionUtils.handleThrowable(t); log.warn(sm.getString("namingResources.cleanupCloseFailed", - closeMethod, name, container), e); + closeMethod, name, container), t); } } } Modified: tomcat/tc7.0.x/trunk/java/org/apache/catalina/loader/WebappClassLoader.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/catalina/loader/WebappClassLoader.java?rev=1201569&r1=1201568&r2=1201569&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/java/org/apache/catalina/loader/WebappClassLoader.java (original) +++ tomcat/tc7.0.x/trunk/java/org/apache/catalina/loader/WebappClassLoader.java Mon Nov 14 01:36:07 2011 @@ -27,7 +27,6 @@ import java.io.InputStream; import java.lang.ref.Reference; import java.lang.ref.WeakReference; import java.lang.reflect.Field; -import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.lang.reflect.Modifier; import java.net.MalformedURLException; @@ -2039,8 +2038,10 @@ public class WebappClassLoader } } catch (Exception e) { // So many things to go wrong above... + Throwable t = ExceptionUtils.unwrapInvocationTargetException(e); + ExceptionUtils.handleThrowable(t); log.warn(sm.getString( - "webappClassLoader.jdbcRemoveFailed", contextName), e); + "webappClassLoader.jdbcRemoveFailed", contextName), t); } finally { if (is != null) { try { @@ -2345,22 +2346,13 @@ public class WebappClassLoader log.error(sm.getString("webappClassLoader.warnTimerThread", contextName, thread.getName())); - } catch (NoSuchFieldException e) { - log.warn(sm.getString( - "webappClassLoader.stopTimerThreadFail", - thread.getName(), contextName), e); - } catch (IllegalAccessException e) { - log.warn(sm.getString( - "webappClassLoader.stopTimerThreadFail", - thread.getName(), contextName), e); - } catch (NoSuchMethodException e) { - log.warn(sm.getString( - "webappClassLoader.stopTimerThreadFail", - thread.getName(), contextName), e); - } catch (InvocationTargetException e) { + } catch (Exception e) { + // So many things to go wrong above... + Throwable t = ExceptionUtils.unwrapInvocationTargetException(e); + ExceptionUtils.handleThrowable(t); log.warn(sm.getString( "webappClassLoader.stopTimerThreadFail", - thread.getName(), contextName), e); + thread.getName(), contextName), t); } } Modified: tomcat/tc7.0.x/trunk/java/org/apache/catalina/loader/WebappLoader.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/catalina/loader/WebappLoader.java?rev=1201569&r1=1201568&r2=1201569&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/java/org/apache/catalina/loader/WebappLoader.java (original) +++ tomcat/tc7.0.x/trunk/java/org/apache/catalina/loader/WebappLoader.java Mon Nov 14 01:36:07 2011 @@ -1096,6 +1096,8 @@ public class WebappLoader extends Lifecy return (String)o; return null; } catch( Exception ex ) { + Throwable t = ExceptionUtils.unwrapInvocationTargetException(ex); + ExceptionUtils.handleThrowable(t); if (log.isDebugEnabled()) log.debug("getClasspath ", ex); } Modified: tomcat/tc7.0.x/trunk/java/org/apache/catalina/manager/StatusTransformer.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/catalina/manager/StatusTransformer.java?rev=1201569&r1=1201568&r2=1201569&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/java/org/apache/catalina/manager/StatusTransformer.java (original) +++ tomcat/tc7.0.x/trunk/java/org/apache/catalina/manager/StatusTransformer.java Mon Nov 14 01:36:07 2011 @@ -160,6 +160,7 @@ public class StatusTransformer { method.invoke(null, paramValues); ok = true; } catch (Throwable t) { + t = ExceptionUtils.unwrapInvocationTargetException(t); ExceptionUtils.handleThrowable(t); } Modified: tomcat/tc7.0.x/trunk/java/org/apache/catalina/manager/util/SessionUtils.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/catalina/manager/util/SessionUtils.java?rev=1201569&r1=1201568&r2=1201569&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/java/org/apache/catalina/manager/util/SessionUtils.java (original) +++ tomcat/tc7.0.x/trunk/java/org/apache/catalina/manager/util/SessionUtils.java Mon Nov 14 01:36:07 2011 @@ -28,6 +28,7 @@ import javax.security.auth.Subject; import javax.servlet.http.HttpSession; import org.apache.catalina.Session; +import org.apache.tomcat.util.ExceptionUtils; /** * Utility methods on HttpSessions... @@ -130,6 +131,9 @@ public class SessionUtils { } } } catch (Exception e) { + Throwable t = ExceptionUtils + .unwrapInvocationTargetException(e); + ExceptionUtils.handleThrowable(t); // stay silent } } Modified: tomcat/tc7.0.x/trunk/java/org/apache/catalina/security/SecurityUtil.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/catalina/security/SecurityUtil.java?rev=1201569&r1=1201568&r2=1201569&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/java/org/apache/catalina/security/SecurityUtil.java (original) +++ tomcat/tc7.0.x/trunk/java/org/apache/catalina/security/SecurityUtil.java Mon Nov 14 01:36:07 2011 @@ -35,6 +35,7 @@ import javax.servlet.http.HttpServletReq import javax.servlet.http.HttpSession; import org.apache.catalina.Globals; +import org.apache.tomcat.util.ExceptionUtils; import org.apache.tomcat.util.res.StringManager; /** * This utility class associates a <code>Subject</code> to the current @@ -306,8 +307,8 @@ public final class SecurityUtil{ } catch( PrivilegedActionException pe) { Throwable e; if (pe.getException() instanceof InvocationTargetException) { - e = ((InvocationTargetException)pe.getException()) - .getTargetException(); + e = pe.getException().getCause(); + ExceptionUtils.handleThrowable(e); } else { e = pe; } Modified: tomcat/tc7.0.x/trunk/java/org/apache/catalina/startup/Bootstrap.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/catalina/startup/Bootstrap.java?rev=1201569&r1=1201568&r2=1201569&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/java/org/apache/catalina/startup/Bootstrap.java (original) +++ tomcat/tc7.0.x/trunk/java/org/apache/catalina/startup/Bootstrap.java Mon Nov 14 01:36:07 2011 @@ -460,12 +460,12 @@ public final class Bootstrap { log.warn("Bootstrap: command \"" + command + "\" does not exist."); } } catch (Throwable t) { - handleThrowable(t); // Unwrap the Exception for clearer error reporting if (t instanceof InvocationTargetException && t.getCause() != null) { t = t.getCause(); } + handleThrowable(t); t.printStackTrace(); System.exit(1); } Modified: tomcat/tc7.0.x/trunk/java/org/apache/catalina/startup/Tool.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/catalina/startup/Tool.java?rev=1201569&r1=1201568&r2=1201569&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/java/org/apache/catalina/startup/Tool.java (original) +++ tomcat/tc7.0.x/trunk/java/org/apache/catalina/startup/Tool.java Mon Nov 14 01:36:07 2011 @@ -229,6 +229,7 @@ public final class Tool { paramValues[0] = params; method.invoke(null, paramValues); } catch (Throwable t) { + t = ExceptionUtils.unwrapInvocationTargetException(t); ExceptionUtils.handleThrowable(t); log.error("Exception calling main() method", t); System.exit(1); --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org