Author: rmannibucau
Date: Fri Aug 15 08:30:20 2014
New Revision: 1618116

URL: http://svn.apache.org/r1618116
Log:
avoid infinite loop when real datasource for openejb point of view is a proxy

Modified:
    
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/DataSourceFactory.java

Modified: 
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/DataSourceFactory.java
URL: 
http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/DataSourceFactory.java?rev=1618116&r1=1618115&r2=1618116&view=diff
==============================================================================
--- 
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/DataSourceFactory.java
 (original)
+++ 
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/DataSourceFactory.java
 Fri Aug 15 08:30:20 2014
@@ -348,10 +348,12 @@ public class DataSourceFactory {
         Object ds = o;
         while (Proxy.isProxyClass(ds.getClass())) {
             final InvocationHandler handler = Proxy.getInvocationHandler(o);
-            if (handler instanceof LoggingSqlDataSource) {
-                ds = ((LoggingSqlDataSource) handler).getDelegate();
+            if (LoggingSqlDataSource.class.isInstance(handler)) {
+                ds = LoggingSqlDataSource.class.cast(handler).getDelegate();
             } else if (FlushableDataSourceHandler.class.isInstance(handler)) {
                 ds = 
FlushableDataSourceHandler.class.cast(handler).getDelegate();
+            } else {
+                break;
             }
         }
 


Reply via email to