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  --------------------------------------------
  
  
  

Reply via email to