Author: kfujino Date: Wed Aug 23 08:10:13 2017 New Revision: 1805863 URL: http://svn.apache.org/viewvc?rev=1805863&view=rev Log: Fix https://bz.apache.org/bugzilla/show_bug.cgi?id=61425 Ensure that transaction of idle connection has terminated when the testWhileIdle is set to true and defaultAutoCommit is set to false. Patch provided by WangZheng.
Modified: tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/PooledConnection.java tomcat/trunk/webapps/docs/changelog.xml Modified: tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/PooledConnection.java URL: http://svn.apache.org/viewvc/tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/PooledConnection.java?rev=1805863&r1=1805862&r2=1805863&view=diff ============================================================================== --- tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/PooledConnection.java (original) +++ tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/PooledConnection.java Wed Aug 23 08:10:13 2017 @@ -541,6 +541,22 @@ public class PooledConnection { } if (stmt!=null) try { stmt.close();} catch (Exception ignore2){/*NOOP*/} + + try { + if(!connection.getAutoCommit()) { + connection.rollback(); + } + } catch (SQLException e) { + // do nothing + } + } finally { + try { + if(!connection.getAutoCommit()) { + connection.commit(); + } + } catch (SQLException e) { + // do nothing + } } return false; } //validate Modified: tomcat/trunk/webapps/docs/changelog.xml URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1805863&r1=1805862&r2=1805863&view=diff ============================================================================== --- tomcat/trunk/webapps/docs/changelog.xml (original) +++ tomcat/trunk/webapps/docs/changelog.xml Wed Aug 23 08:10:13 2017 @@ -156,6 +156,16 @@ </fix> </changelog> </subsection> + <subsection name="jdbc-pool"> + <changelog> + <fix> + <bug>61425</bug>: Ensure that transaction of idle connection has + terminated when the <code>testWhileIdle</code> is set to + <code>true</code> and <code>defaultAutoCommit</code> is set to + <code>false</code>. Patch provided by WangZheng. (kfujino) + </fix> + </changelog> + </subsection> <subsection name="Other"> <changelog> <fix> --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org