incorporate feedback based on
authorfhanik <fhanik@13f79535-47bb-0310-9956-ffa450edef68>
Mon, 4 Apr 2011 15:46:10 +0000 (15:46 +0000)
committerfhanik <fhanik@13f79535-47bb-0310-9956-ffa450edef68>
Mon, 4 Apr 2011 15:46:10 +0000 (15:46 +0000)
http://markmail.org/message/gz7lm5dpdpdgcdzq

git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@1088665 13f79535-47bb-0310-9956-ffa450edef68

modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/TrapException.java

index a075fab..7654ef0 100644 (file)
@@ -39,11 +39,10 @@ public class TrapException extends JdbcInterceptor {
     public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {\r
         try {\r
             return super.invoke(proxy, method, args);\r
-        }catch (Throwable t) {\r
+        }catch (Exception t) {\r
             Throwable exception = t;\r
             if (t instanceof InvocationTargetException) {\r
-                InvocationTargetException it = (InvocationTargetException)t;\r
-                exception = it.getCause()!=null?it.getCause():it;\r
+                exception = t.getCause()!=null?t.getCause():t;\r
             } \r
             Class<?> exceptionClass = exception.getClass();\r
             if (!isDeclaredException(method, exceptionClass)) {\r
@@ -64,7 +63,7 @@ public class TrapException extends JdbcInterceptor {
     \r
     public boolean isDeclaredException(Method m, Class<?> clazz) {\r
         for (Class<?> cl : m.getExceptionTypes()) {\r
-            if (cl.equals(clazz)) return true;\r
+            if (cl.equals(clazz) || cl.isAssignableFrom(clazz)) return true;\r
         }\r
         return false;\r
     }\r