You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2014/08/15 10:30:20 UTC
svn commit: r1618116 -
/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/DataSourceFactory.java
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;
}
}