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);
         }


Reply via email to