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: [email protected]
For additional commands, e-mail: [email protected]