Return-Path: Delivered-To: apmail-tomcat-dev-archive@www.apache.org Received: (qmail 20751 invoked from network); 4 Jan 2011 22:39:26 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 4 Jan 2011 22:39:26 -0000 Received: (qmail 80837 invoked by uid 500); 4 Jan 2011 22:37:50 -0000 Delivered-To: apmail-tomcat-dev-archive@tomcat.apache.org Received: (qmail 80307 invoked by uid 500); 4 Jan 2011 22:37:47 -0000 Mailing-List: contact dev-help@tomcat.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: "Tomcat Developers List" Delivered-To: mailing list dev@tomcat.apache.org Received: (qmail 73259 invoked by uid 99); 4 Jan 2011 22:34:03 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 04 Jan 2011 22:34:03 +0000 X-ASF-Spam-Status: No, hits=-0.0 required=10.0 tests=SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: local policy) Received: from [72.22.94.67] (HELO virtual.halosg.com) (72.22.94.67) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 04 Jan 2011 22:33:54 +0000 Received: (qmail 10158 invoked from network); 4 Jan 2011 16:33:33 -0600 Received: from c-98-245-245-160.hsd1.co.comcast.net (HELO ?10.1.10.166?) (98.245.245.160) by halosg.com with (AES256-SHA encrypted) SMTP; 4 Jan 2011 16:33:33 -0600 Message-ID: <4D23A039.7010804@hanik.com> Date: Tue, 04 Jan 2011 15:33:29 -0700 From: Filip Hanik - Dev Lists User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101207 Thunderbird/3.1.7 MIME-Version: 1.0 To: Tomcat Developers List Subject: 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 References: <20110104183745.5677723888FE@eris.apache.org> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org On 1/4/2011 12:27 PM, sebb wrote: > On 4 January 2011 18:37, wrote: >> Author: fhanik >> Date: Tue Jan 4 18:37:44 2011 >> New Revision: 1055137 >> >> URL: http://svn.apache.org/viewvc?rev=1055137&view=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=1055137&r1=1055136&r2=1055137&view=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-unsubscribe@tomcat.apache.org For additional commands, e-mail: dev-help@tomcat.apache.org