Return-Path: Delivered-To: apmail-commons-commits-archive@locus.apache.org Received: (qmail 56128 invoked from network); 27 Jun 2008 02:48:30 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 27 Jun 2008 02:48:30 -0000 Received: (qmail 74423 invoked by uid 500); 27 Jun 2008 02:48:28 -0000 Delivered-To: apmail-commons-commits-archive@commons.apache.org Received: (qmail 74358 invoked by uid 500); 27 Jun 2008 02:48:28 -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 74349 invoked by uid 99); 27 Jun 2008 02:48:28 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 26 Jun 2008 19:48:28 -0700 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 27 Jun 2008 02:47:47 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id B9F3523889F3; Thu, 26 Jun 2008 19:48:06 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r672097 - in /commons/proper/dbcp/trunk: src/java/org/apache/commons/dbcp/AbandonedTrace.java xdocs/changes.xml Date: Fri, 27 Jun 2008 02:48:06 -0000 To: commits@commons.apache.org From: psteitz@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20080627024806.B9F3523889F3@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: psteitz Date: Thu Jun 26 19:48:06 2008 New Revision: 672097 URL: http://svn.apache.org/viewvc?rev=672097&view=rev Log: Narrowed synchronization in AbandonedTrace to resolve an Evictor deadlock. JIRA: DBCP-270 Reported and patched by Filip Hanik. Modified: commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/AbandonedTrace.java commons/proper/dbcp/trunk/xdocs/changes.xml Modified: commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/AbandonedTrace.java URL: http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/AbandonedTrace.java?rev=672097&r1=672096&r2=672097&view=diff ============================================================================== --- commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/AbandonedTrace.java (original) +++ commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/AbandonedTrace.java Thu Jun 26 19:48:06 2008 @@ -172,7 +172,7 @@ * @param trace AbandonedTrace object to add */ protected void addTrace(AbandonedTrace trace) { - synchronized (this) { + synchronized (this.trace) { this.trace.add(trace); } setLastUsed(); @@ -182,8 +182,8 @@ * Clear the list of objects being traced by this * object. */ - protected synchronized void clearTrace() { - if (this.trace != null) { + protected void clearTrace() { + synchronized(this.trace) { this.trace.clear(); } } @@ -194,7 +194,9 @@ * @return List of objects */ protected List getTrace() { - return trace; + synchronized (this.trace) { + return new ArrayList(trace); + } } /** @@ -206,7 +208,7 @@ System.out.println(format.format(new Date(createdTime))); createdBy.printStackTrace(System.out); } - synchronized(this) { + synchronized(this.trace) { Iterator it = this.trace.iterator(); while (it.hasNext()) { AbandonedTrace at = (AbandonedTrace)it.next(); @@ -220,8 +222,8 @@ * * @param trace AbandonedTrace object to remvoe */ - protected synchronized void removeTrace(AbandonedTrace trace) { - if (this.trace != null) { + protected void removeTrace(AbandonedTrace trace) { + synchronized(this.trace) { this.trace.remove(trace); } } Modified: commons/proper/dbcp/trunk/xdocs/changes.xml URL: http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/xdocs/changes.xml?rev=672097&r1=672096&r2=672097&view=diff ============================================================================== --- commons/proper/dbcp/trunk/xdocs/changes.xml (original) +++ commons/proper/dbcp/trunk/xdocs/changes.xml Thu Jun 26 19:48:06 2008 @@ -42,6 +42,9 @@ new features as well as bug fixes and instrumentation. Some bug fixes will change semantics (e.g. connection close will become idempotent). The minimum JDK level will be increased to 1.4"> + + Narrowed synchronization in AbandonedTrace to resolve an Evictor deadlock. + Corrected Javadoc to state that getLoginTimeout and setLoginTimeout are NOT supported by BasicDataSource.