Author: dblevins
Date: Tue May 13 17:14:10 2014
New Revision: 1594292
URL: http://svn.apache.org/r1594292
Log:
Must unwrap InvocationTargetExceptions or no driver's SQLExceptions will be
visible.
Modified:
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/util/classloader/ClassLoaderAwareHandler.java
Modified:
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/util/classloader/ClassLoaderAwareHandler.java
URL:
http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/util/classloader/ClassLoaderAwareHandler.java?rev=1594292&r1=1594291&r2=1594292&view=diff
==============================================================================
---
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/util/classloader/ClassLoaderAwareHandler.java
(original)
+++
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/util/classloader/ClassLoaderAwareHandler.java
Tue May 13 17:14:10 2014
@@ -17,6 +17,7 @@
package org.apache.openejb.util.classloader;
import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
public final class ClassLoaderAwareHandler implements InvocationHandler {
@@ -41,6 +42,11 @@ public final class ClassLoaderAwareHandl
thread.setContextClassLoader(loader);
try {
return method.invoke(delegate, args);
+ } catch (InvocationTargetException e) {
+ // Reflection wraps all exceptions thrown from the Method with
+ // InvocationTargetException. We must unwrap it and throw the
+ // real exception otherwise TomEE/OpenEJB will see
'UndeclaredThrowableException'
+ throw e.getCause();
} finally {
thread.setContextClassLoader(old);
}