Return-Path: Delivered-To: apmail-commons-commits-archive@locus.apache.org Received: (qmail 27595 invoked from network); 29 Jan 2008 02:29:26 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 29 Jan 2008 02:29:26 -0000 Received: (qmail 48734 invoked by uid 500); 29 Jan 2008 02:29:16 -0000 Delivered-To: apmail-commons-commits-archive@commons.apache.org Received: (qmail 48683 invoked by uid 500); 29 Jan 2008 02:29:16 -0000 Mailing-List: contact commits-help@commons.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@commons.apache.org Delivered-To: mailing list commits@commons.apache.org Received: (qmail 48674 invoked by uid 99); 29 Jan 2008 02:29:16 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 28 Jan 2008 18:29:16 -0800 X-ASF-Spam-Status: No, hits=-100.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.3] (HELO eris.apache.org) (140.211.11.3) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 29 Jan 2008 02:29:09 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id ABD8B1A9832; Mon, 28 Jan 2008 18:29:01 -0800 (PST) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r616142 - in /commons/proper/dbcp/trunk: src/java/org/apache/commons/dbcp/datasources/SharedPoolDataSource.java src/test/org/apache/commons/dbcp/datasources/TestSharedPoolDataSource.java xdocs/changes.xml Date: Tue, 29 Jan 2008 02:29:01 -0000 To: commits@commons.apache.org From: psteitz@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20080129022901.ABD8B1A9832@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: psteitz Date: Mon Jan 28 18:29:00 2008 New Revision: 616142 URL: http://svn.apache.org/viewvc?rev=616142&view=rev Log: Fixed error in SharedPoolDataSource causing incorrect passwords to be stored under certain conditions. JIRA: DBCP-245 Reported and patched by Michael Drechsel Modified: commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/datasources/SharedPoolDataSource.java commons/proper/dbcp/trunk/src/test/org/apache/commons/dbcp/datasources/TestSharedPoolDataSource.java commons/proper/dbcp/trunk/xdocs/changes.xml Modified: commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/datasources/SharedPoolDataSource.java URL: http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/datasources/SharedPoolDataSource.java?rev=616142&r1=616141&r2=616142&view=diff ============================================================================== --- commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/datasources/SharedPoolDataSource.java (original) +++ commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/datasources/SharedPoolDataSource.java Mon Jan 28 18:29:00 2008 @@ -167,6 +167,13 @@ info = (PooledConnectionAndInfo) pool .borrowObject(getUserPassKey(username, password)); } + catch (SQLException ex) { // Remove bad UserPassKey + if ((userKeys != null) && (userKeys.containsKey(username))) { + userKeys.remove(username); + } + throw new SQLNestedException( + "Could not retrieve connection info from pool", ex); + } catch (Exception e) { throw new SQLNestedException( "Could not retrieve connection info from pool", e); Modified: commons/proper/dbcp/trunk/src/test/org/apache/commons/dbcp/datasources/TestSharedPoolDataSource.java URL: http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/src/test/org/apache/commons/dbcp/datasources/TestSharedPoolDataSource.java?rev=616142&r1=616141&r2=616142&view=diff ============================================================================== --- commons/proper/dbcp/trunk/src/test/org/apache/commons/dbcp/datasources/TestSharedPoolDataSource.java (original) +++ commons/proper/dbcp/trunk/src/test/org/apache/commons/dbcp/datasources/TestSharedPoolDataSource.java Mon Jan 28 18:29:00 2008 @@ -78,9 +78,14 @@ * Switching 'u1 -> 'u2' and 'p1' -> 'p2' will * exhibit the bug detailed in * http://issues.apache.org/bugzilla/show_bug.cgi?id=18905 + * + * Starting with a successful connection, then incorrect password, + * then correct password for same user illustrates + * JIRA: DBCP-245 */ public void testIncorrectPassword() throws Exception { + ds.getConnection("u2", "p2").close(); try { // Use bad password ds.getConnection("u1", "zlsafjk").close(); @@ -520,6 +525,5 @@ assertTrue(l3HashCode == l4HashCode); conn.close(); conn = null; - } } Modified: commons/proper/dbcp/trunk/xdocs/changes.xml URL: http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/xdocs/changes.xml?rev=616142&r1=616141&r2=616142&view=diff ============================================================================== --- commons/proper/dbcp/trunk/xdocs/changes.xml (original) +++ commons/proper/dbcp/trunk/xdocs/changes.xml Mon Jan 28 18:29:00 2008 @@ -101,6 +101,10 @@ removeConnectionEventListener from connection event handlers to eliminate potential for ConcurrentModificationExceptions. + + Fixed error in SharedPoolDataSource causing incorrect passwords to be + stored under certain conditions. +