Author: kkolinko Date: Mon Nov 14 06:48:46 2011 New Revision: 1201608 URL: http://svn.apache.org/viewvc?rev=1201608&view=rev Log: Improve processing of errors that are wrapped into InvocationTargetException. Rethrow errors that must be rethrown: process exceptions thrown from Constructor.newInstance(). In DataSourceLinkFactory: unwrap exception from within InvocationTargetException.
Modified: tomcat/trunk/java/org/apache/catalina/loader/WebappLoader.java tomcat/trunk/java/org/apache/jasper/servlet/JspServlet.java tomcat/trunk/java/org/apache/naming/factory/DataSourceLinkFactory.java Modified: tomcat/trunk/java/org/apache/catalina/loader/WebappLoader.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/loader/WebappLoader.java?rev=1201608&r1=1201607&r2=1201608&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/loader/WebappLoader.java (original) +++ tomcat/trunk/java/org/apache/catalina/loader/WebappLoader.java Mon Nov 14 06:48:46 2011 @@ -603,6 +603,7 @@ public class WebappLoader extends Lifecy .registerComponent(classLoader, cloname, null); } catch (Throwable t) { + t = ExceptionUtils.unwrapInvocationTargetException(t); ExceptionUtils.handleThrowable(t); log.error( "LifecycleException ", t ); throw new LifecycleException("start: ", t); Modified: tomcat/trunk/java/org/apache/jasper/servlet/JspServlet.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/jasper/servlet/JspServlet.java?rev=1201608&r1=1201607&r2=1201608&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/jasper/servlet/JspServlet.java (original) +++ tomcat/trunk/java/org/apache/jasper/servlet/JspServlet.java Mon Nov 14 06:48:46 2011 @@ -104,6 +104,7 @@ public class JspServlet extends HttpServ Object[] args = { config, context }; options = (Options) ctor.newInstance(args); } catch (Throwable e) { + e = ExceptionUtils.unwrapInvocationTargetException(e); ExceptionUtils.handleThrowable(e); // Need to localize this. log.warn("Failed to load engineOptionsClass", e); Modified: tomcat/trunk/java/org/apache/naming/factory/DataSourceLinkFactory.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/naming/factory/DataSourceLinkFactory.java?rev=1201608&r1=1201607&r2=1201608&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/naming/factory/DataSourceLinkFactory.java (original) +++ tomcat/trunk/java/org/apache/naming/factory/DataSourceLinkFactory.java Mon Nov 14 06:48:46 2011 @@ -76,6 +76,18 @@ public class DataSourceLinkFactory exten DataSourceHandler handler = new DataSourceHandler((DataSource)datasource, username, password); return proxyConstructor.newInstance(handler); }catch (Exception x) { + if (x instanceof InvocationTargetException) { + Throwable cause = x.getCause(); + if (cause instanceof ThreadDeath) { + throw (ThreadDeath) cause; + } + if (cause instanceof VirtualMachineError) { + throw (VirtualMachineError) cause; + } + if (cause instanceof Exception) { + x = (Exception) cause; + } + } if (x instanceof NamingException) throw (NamingException)x; else { NamingException nx = new NamingException(x.getMessage()); --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org