Author: kfujino
Date: Wed Jul 20 08:45:09 2016
New Revision: 1753467

URL: http://svn.apache.org/viewvc?rev=1753467&view=rev
Log:
Fix https://bz.apache.org/bugzilla/show_bug.cgi?id=59849
Ensure that the connection verification is executed by initSQL (if required) if 
the borrowing PooledConnection has not been initialized.

Modified:
    
tomcat/tc7.0.x/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/ConnectionPool.java
    tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml

Modified: 
tomcat/tc7.0.x/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/ConnectionPool.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/ConnectionPool.java?rev=1753467&r1=1753466&r2=1753467&view=diff
==============================================================================
--- 
tomcat/tc7.0.x/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/ConnectionPool.java
 (original)
+++ 
tomcat/tc7.0.x/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/ConnectionPool.java
 Wed Jul 20 08:45:09 2016
@@ -765,20 +765,9 @@ public class ConnectionPool {
             }
 
             if (!con.isDiscarded() && !con.isInitialized()) {
-                //attempt to connect
-                try {
-                    con.connect();
-                } catch (Exception x) {
-                    release(con);
-                    setToNull = true;
-                    if (x instanceof SQLException) {
-                        throw (SQLException)x;
-                    } else {
-                        SQLException ex  = new SQLException(x.getMessage());
-                        ex.initCause(x);
-                        throw ex;
-                    }
-                }
+                //here it states that the connection not discarded, but the 
connection is null
+                //don't attempt a connect here. It will be done during the 
reconnect.
+                usercheck = false;
             }
 
             if (usercheck) {
@@ -802,7 +791,10 @@ public class ConnectionPool {
             //the connection shouldn't have to poll again.
             try {
                 con.reconnect();
-                if (con.validate(PooledConnection.VALIDATE_INIT)) {
+                int validationMode = getPoolProperties().isTestOnConnect() || 
getPoolProperties().getInitSQL()!=null ?
+                        PooledConnection.VALIDATE_INIT :
+                        PooledConnection.VALIDATE_BORROW;
+                if (con.validate(validationMode)) {
                     //set the timestamp
                     con.setTimestamp(now);
                     if (getPoolProperties().isLogAbandoned()) {

Modified: tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml
URL: 
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml?rev=1753467&r1=1753466&r2=1753467&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml Wed Jul 20 08:45:09 2016
@@ -170,6 +170,11 @@
         been scheduled. (kfujino)
       </fix>
       <fix>
+        <bug>59849</bug>: Ensure that the connection verification is executed 
by
+        <code>initSQL</code> (if required) if the borrowing
+        <code>PooledConnection</code> has not been initialized. (kfujino)
+      </fix>
+      <fix>
         <bug>59850</bug>: Ensure that the <code>ResultSet</code> is closed when
         enabling the <code>StatementCache</code> interceptor. (kfujino)
       </fix>



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

Reply via email to