User: oberg
Date: 00/08/25 02:05:06
Modified: src/main/org/jboss/jdbc DataSourceImpl.java
Log:
Perf. fix (do not re-create dynamic proxy on each close()!)
Revision Changes Path
1.7 +15 -5 jboss/src/main/org/jboss/jdbc/DataSourceImpl.java
Index: DataSourceImpl.java
===================================================================
RCS file: /products/cvs/ejboss/jboss/src/main/org/jboss/jdbc/DataSourceImpl.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- DataSourceImpl.java 2000/08/18 03:21:04 1.6
+++ DataSourceImpl.java 2000/08/25 09:05:06 1.7
@@ -42,7 +42,7 @@
*
* @see <related>
* @author Rickard �berg ([EMAIL PROTECTED])
- * @version $Revision: 1.6 $
+ * @version $Revision: 1.7 $
*/
public class DataSourceImpl
extends ServiceMBeanSupport
@@ -133,9 +133,12 @@
{
Connection con = DriverManager.getConnection(url,user,password);
// Create proxy around it
+ ConnectionProxy proxyHandler = new ConnectionProxy(con, this);
Connection conProxy = (Connection)
Proxy.newProxyInstance(getClass().getClassLoader(),
new Class[] {
org.jboss.jdbc.Connection.class },
- new ConnectionProxy(con, this));
+ proxyHandler);
+ // Set proxy (TODO: Should not be needed!)
+ proxyHandler.setProxy(conProxy);
//DEBUG log.debug("Connection to "+url+" created:"+conProxy);
return conProxy;
} else
@@ -232,6 +235,7 @@
{
Connection con;
DataSourceImpl ds;
+ Connection conProxy;
ConnectionProxy(Connection con, DataSourceImpl ds)
{
@@ -250,9 +254,10 @@
// TODO: Should work, but doesn't!(?)
// ds.release((Connection)Proxies.getTarget(this));
-
ds.release((Connection)Proxy.newProxyInstance(getClass().getClassLoader(),
- new Class[] {
org.jboss.jdbc.Connection.class },
- new ConnectionProxy(con, ds)));
+ ds.release(this.conProxy);
+//
ds.release((Connection)Proxy.newProxyInstance(getClass().getClassLoader(),
+// new Class[] {
org.jboss.jdbc.Connection.class },
+// new ConnectionProxy(con, ds)));
return null;
} else
{
@@ -265,6 +270,11 @@
return method.invoke(con, args);
}
}
+ }
+
+ public void setProxy(Connection con)
+ {
+ this.conProxy = con;
}
// Package protected --------------------------------------------