svn commit: r1055137 - in /tomcat/trunk/modules/jdbc-pool: java/org/apache/tomcat/jdbc/pool/PooledConnection.java test/org/apache/tomcat/jdbc/test/AlternateUsernameTest.java

2011-01-04 Thread fhanik
Author: fhanik
Date: Tue Jan  4 18:37:44 2011
New Revision: 1055137

URL: http://svn.apache.org/viewvc?rev=1055137view=rev
Log:
No need to instantiate a new driver instance each time, simply reuse the one we 
got

Modified:

tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/PooledConnection.java

tomcat/trunk/modules/jdbc-pool/test/org/apache/tomcat/jdbc/test/AlternateUsernameTest.java

Modified: 
tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/PooledConnection.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/PooledConnection.java?rev=1055137r1=1055136r2=1055137view=diff
==
--- 
tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/PooledConnection.java
 (original)
+++ 
tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/PooledConnection.java
 Tue Jan  4 18:37:44 2011
@@ -74,7 +74,7 @@ public class PooledConnection {
 /**
  * If using a XAConnection underneath.
  */
-private volatile javax.sql.XAConnection xaConnection;
+protected volatile javax.sql.XAConnection xaConnection;
 /**
  * When we track abandon traces, this string holds the thread dump
  */
@@ -117,6 +117,8 @@ public class PooledConnection {
 
 private volatile boolean suspect = false;
 
+private java.sql.Driver driver = null;
+
 /**
  * Constructor
  * @param prop - pool properties
@@ -229,10 +231,12 @@ public class PooledConnection {
 }
 }
 protected void connectUsingDriver() throws SQLException {
-java.sql.Driver driver = null;
+
 try {
-driver = (java.sql.Driver) 
Class.forName(poolProperties.getDriverClassName(),
- true, 
PooledConnection.class.getClassLoader()).newInstance();
+if (driver==null)
+driver = (java.sql.Driver) 
Class.forName(poolProperties.getDriverClassName(),
+ true, 
PooledConnection.class.getClassLoader()
+ ).newInstance();
 } catch (java.lang.Exception cn) {
 if (log.isDebugEnabled()) {
 log.debug(Unable to instantiate JDBC driver., cn);

Modified: 
tomcat/trunk/modules/jdbc-pool/test/org/apache/tomcat/jdbc/test/AlternateUsernameTest.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/modules/jdbc-pool/test/org/apache/tomcat/jdbc/test/AlternateUsernameTest.java?rev=1055137r1=1055136r2=1055137view=diff
==
--- 
tomcat/trunk/modules/jdbc-pool/test/org/apache/tomcat/jdbc/test/AlternateUsernameTest.java
 (original)
+++ 
tomcat/trunk/modules/jdbc-pool/test/org/apache/tomcat/jdbc/test/AlternateUsernameTest.java
 Tue Jan  4 18:37:44 2011
@@ -34,7 +34,7 @@ import org.apache.tomcat.jdbc.test.drive
 
 public class AlternateUsernameTest extends DefaultTestCase {
 
-private static final int iterations = (new 
Random(System.currentTimeMillis())).nextInt(100)+10;
+private static final int iterations = 50; //(new 
Random(System.currentTimeMillis())).nextInt(100)+10;
 public AlternateUsernameTest(String name) {
 super(name);
 }
@@ -44,13 +44,15 @@ public class AlternateUsernameTest exten
 
 private void testUsername(boolean allowUsernameChange) throws Exception {
 long start = System.currentTimeMillis();
+int withoutuser =10;
+int withuser = withoutuser;
 this.init();
+this.datasource.setMaxActive(withuser+withoutuser);
 this.datasource.setDriverClassName(Driver.class.getName());
 this.datasource.setUrl(jdbc:tomcat:test);
 this.datasource.setAlternateUsernameAllowed(allowUsernameChange);
 this.datasource.getConnection().close();
-int withoutuser =10;
-int withuser = withoutuser;
+
 TestRunner[] runners = new TestRunner[withuser+withoutuser];
 for (int i=0; iwithuser; i++) {
 TestRunner with = new 
TestRunner(foo,bar,datasource.getPoolProperties().getUsername(),datasource.getPoolProperties().getPassword());



-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Re: svn commit: r1055137 - in /tomcat/trunk/modules/jdbc-pool: java/org/apache/tomcat/jdbc/pool/PooledConnection.java test/org/apache/tomcat/jdbc/test/AlternateUsernameTest.java

2011-01-04 Thread sebb
On 4 January 2011 18:37,  fha...@apache.org wrote:
 Author: fhanik
 Date: Tue Jan  4 18:37:44 2011
 New Revision: 1055137

 URL: http://svn.apache.org/viewvc?rev=1055137view=rev
 Log:
 No need to instantiate a new driver instance each time, simply reuse the one 
 we got

 Modified:
    
 tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/PooledConnection.java
    
 tomcat/trunk/modules/jdbc-pool/test/org/apache/tomcat/jdbc/test/AlternateUsernameTest.java

 Modified: 
 tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/PooledConnection.java
 URL: 
 http://svn.apache.org/viewvc/tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/PooledConnection.java?rev=1055137r1=1055136r2=1055137view=diff
 ==
 --- 
 tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/PooledConnection.java
  (original)
 +++ 
 tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/PooledConnection.java
  Tue Jan  4 18:37:44 2011
 @@ -74,7 +74,7 @@ public class PooledConnection {
     /**
      * If using a XAConnection underneath.
      */
 -    private volatile javax.sql.XAConnection xaConnection;
 +    protected volatile javax.sql.XAConnection xaConnection;
     /**
      * When we track abandon traces, this string holds the thread dump
      */
 @@ -117,6 +117,8 @@ public class PooledConnection {

     private volatile boolean suspect = false;

 +    private java.sql.Driver driver = null;
 +
     /**
      * Constructor
      * @param prop - pool properties
 @@ -229,10 +231,12 @@ public class PooledConnection {
         }
     }
     protected void connectUsingDriver() throws SQLException {
 -        java.sql.Driver driver = null;
 +
         try {
 -            driver = (java.sql.Driver) 
 Class.forName(poolProperties.getDriverClassName(),
 -                                                     true, 
 PooledConnection.class.getClassLoader()).newInstance();
 +            if (driver==null)
 +                driver = (java.sql.Driver) 
 Class.forName(poolProperties.getDriverClassName(),
 +                                                         true, 
 PooledConnection.class.getClassLoader()
 +                                                         ).newInstance();

This is not thread-safe.

         } catch (java.lang.Exception cn) {
             if (log.isDebugEnabled()) {
                 log.debug(Unable to instantiate JDBC driver., cn);

 Modified: 
 tomcat/trunk/modules/jdbc-pool/test/org/apache/tomcat/jdbc/test/AlternateUsernameTest.java
 URL: 
 http://svn.apache.org/viewvc/tomcat/trunk/modules/jdbc-pool/test/org/apache/tomcat/jdbc/test/AlternateUsernameTest.java?rev=1055137r1=1055136r2=1055137view=diff
 ==
 --- 
 tomcat/trunk/modules/jdbc-pool/test/org/apache/tomcat/jdbc/test/AlternateUsernameTest.java
  (original)
 +++ 
 tomcat/trunk/modules/jdbc-pool/test/org/apache/tomcat/jdbc/test/AlternateUsernameTest.java
  Tue Jan  4 18:37:44 2011
 @@ -34,7 +34,7 @@ import org.apache.tomcat.jdbc.test.drive

  public class AlternateUsernameTest extends DefaultTestCase {

 -    private static final int iterations = (new 
 Random(System.currentTimeMillis())).nextInt(100)+10;
 +    private static final int iterations = 50; //(new 
 Random(System.currentTimeMillis())).nextInt(100)+10;
     public AlternateUsernameTest(String name) {
         super(name);
     }
 @@ -44,13 +44,15 @@ public class AlternateUsernameTest exten

     private void testUsername(boolean allowUsernameChange) throws Exception {
         long start = System.currentTimeMillis();
 +        int withoutuser =10;
 +        int withuser = withoutuser;
         this.init();
 +        this.datasource.setMaxActive(withuser+withoutuser);
         this.datasource.setDriverClassName(Driver.class.getName());
         this.datasource.setUrl(jdbc:tomcat:test);
         this.datasource.setAlternateUsernameAllowed(allowUsernameChange);
         this.datasource.getConnection().close();
 -        int withoutuser =10;
 -        int withuser = withoutuser;
 +
         TestRunner[] runners = new TestRunner[withuser+withoutuser];
         for (int i=0; iwithuser; i++) {
             TestRunner with = new 
 TestRunner(foo,bar,datasource.getPoolProperties().getUsername(),datasource.getPoolProperties().getPassword());



 -
 To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
 For additional commands, e-mail: dev-h...@tomcat.apache.org



-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Re: svn commit: r1055137 - in /tomcat/trunk/modules/jdbc-pool: java/org/apache/tomcat/jdbc/pool/PooledConnection.java test/org/apache/tomcat/jdbc/test/AlternateUsernameTest.java

2011-01-04 Thread Filip Hanik - Dev Lists

On 1/4/2011 12:27 PM, sebb wrote:

On 4 January 2011 18:37,fha...@apache.org  wrote:

Author: fhanik
Date: Tue Jan  4 18:37:44 2011
New Revision: 1055137

URL: http://svn.apache.org/viewvc?rev=1055137view=rev
Log:
No need to instantiate a new driver instance each time, simply reuse the one we 
got

Modified:

tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/PooledConnection.java

tomcat/trunk/modules/jdbc-pool/test/org/apache/tomcat/jdbc/test/AlternateUsernameTest.java

Modified: 
tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/PooledConnection.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/PooledConnection.java?rev=1055137r1=1055136r2=1055137view=diff
==
--- 
tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/PooledConnection.java
 (original)
+++ 
tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/PooledConnection.java
 Tue Jan  4 18:37:44 2011
@@ -74,7 +74,7 @@ public class PooledConnection {
 /**
  * If using a XAConnection underneath.
  */
-private volatile javax.sql.XAConnection xaConnection;
+protected volatile javax.sql.XAConnection xaConnection;
 /**
  * When we track abandon traces, this string holds the thread dump
  */
@@ -117,6 +117,8 @@ public class PooledConnection {

 private volatile boolean suspect = false;

+private java.sql.Driver driver = null;
+
 /**
  * Constructor
  * @param prop - pool properties
@@ -229,10 +231,12 @@ public class PooledConnection {
 }
 }
 protected void connectUsingDriver() throws SQLException {
-java.sql.Driver driver = null;
+
 try {
-driver = (java.sql.Driver) 
Class.forName(poolProperties.getDriverClassName(),
- true, 
PooledConnection.class.getClassLoader()).newInstance();
+if (driver==null)
+driver = (java.sql.Driver) 
Class.forName(poolProperties.getDriverClassName(),
+ true, 
PooledConnection.class.getClassLoader()
+ ).newInstance();

This is not thread-safe.


and if you read the code, you'll see that it doesn't matter. sometimes thread safety can be ignored for the sake of performance and 
simplicity since there will never be a bug.


Filip


-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org