Author: fhanik Date: Tue Feb 22 22:42:44 2011 New Revision: 1073531 URL: http://svn.apache.org/viewvc?rev=1073531&view=rev Log: https://issues.apache.org/bugzilla/show_bug.cgi?id=50805 Make sure we only call borrowConnection once per connection per checkout
Added: tomcat/trunk/modules/jdbc-pool/test/org/apache/tomcat/jdbc/test/Bug50805.java (with props) Modified: tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/ConnectionPool.java Modified: tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/ConnectionPool.java URL: http://svn.apache.org/viewvc/tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/ConnectionPool.java?rev=1073531&r1=1073530&r2=1073531&view=diff ============================================================================== --- tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/ConnectionPool.java (original) +++ tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/ConnectionPool.java Tue Feb 22 22:42:44 2011 @@ -142,6 +142,7 @@ public class ConnectionPool { public Future<Connection> getConnectionAsync() throws SQLException { PooledConnection pc = this.borrowConnection(0, null, null); if (pc!=null) { + return new ConnectionFuture(pc); } //we can only retrieve a future if the underlying queue supports it. @@ -1054,8 +1055,10 @@ public class ConnectionPool { this.pcFuture = pcf; } - public ConnectionFuture(PooledConnection pc) { + public ConnectionFuture(PooledConnection pc) throws SQLException { this.pc = pc; + result = ConnectionPool.this.setupConnection(pc); + configured.set(true); } /** * {@inheritDoc} Added: tomcat/trunk/modules/jdbc-pool/test/org/apache/tomcat/jdbc/test/Bug50805.java URL: http://svn.apache.org/viewvc/tomcat/trunk/modules/jdbc-pool/test/org/apache/tomcat/jdbc/test/Bug50805.java?rev=1073531&view=auto ============================================================================== --- tomcat/trunk/modules/jdbc-pool/test/org/apache/tomcat/jdbc/test/Bug50805.java (added) +++ tomcat/trunk/modules/jdbc-pool/test/org/apache/tomcat/jdbc/test/Bug50805.java Tue Feb 22 22:42:44 2011 @@ -0,0 +1,38 @@ +package org.apache.tomcat.jdbc.test; + +import java.sql.Connection; +import java.util.concurrent.Future; + +public class Bug50805 extends DefaultTestCase { + public Bug50805(String name) { + super(name); + } + + public void test50805() throws Exception { + init(); + this.datasource.setInitialSize(0); + this.datasource.setMaxActive(10); + this.datasource.setMinIdle(1); + + assertEquals("Current size should be 0.", 0, this.datasource.getSize()); + + this.datasource.getConnection().close(); + + assertEquals("Current size should be 1.", 1, this.datasource.getSize()); + assertEquals("Idle size should be 1.", 1, this.datasource.getIdle()); + assertEquals("Busy size should be 0.", 0, this.datasource.getActive()); + + Future<Connection> fc = this.datasource.getConnectionAsync(); + + Connection con = fc.get(); + + assertEquals("Current size should be 1.", 1, this.datasource.getSize()); + assertEquals("Idle size should be 0.", 0, this.datasource.getIdle()); + assertEquals("Busy size should be 1.", 1, this.datasource.getActive()); + + con.close(); + assertEquals("Current size should be 1.", 1, this.datasource.getSize()); + assertEquals("Idle size should be 1.", 1, this.datasource.getIdle()); + assertEquals("Busy size should be 0.", 0, this.datasource.getActive()); + } +} Propchange: tomcat/trunk/modules/jdbc-pool/test/org/apache/tomcat/jdbc/test/Bug50805.java ------------------------------------------------------------------------------ svn:eol-style = native --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org