Return-Path: Delivered-To: apmail-db-derby-commits-archive@www.apache.org Received: (qmail 11348 invoked from network); 26 Jun 2010 17:51:10 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 26 Jun 2010 17:51:10 -0000 Received: (qmail 62780 invoked by uid 500); 26 Jun 2010 17:51:10 -0000 Delivered-To: apmail-db-derby-commits-archive@db.apache.org Received: (qmail 62711 invoked by uid 500); 26 Jun 2010 17:51:10 -0000 Mailing-List: contact derby-commits-help@db.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: List-Post: Reply-To: "Derby Development" List-Id: Delivered-To: mailing list derby-commits@db.apache.org Received: (qmail 62703 invoked by uid 99); 26 Jun 2010 17:51:10 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 26 Jun 2010 17:51:10 +0000 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; Sat, 26 Jun 2010 17:51:08 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 229922388903; Sat, 26 Jun 2010 17:50:15 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r958257 - in /db/derby/code/trunk/java/engine/org/apache/derby/impl/services/locks: ConcurrentLockSet.java LockSet.java Date: Sat, 26 Jun 2010 17:50:15 -0000 To: derby-commits@db.apache.org From: kahatlen@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20100626175015.229922388903@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: kahatlen Date: Sat Jun 26 17:50:14 2010 New Revision: 958257 URL: http://svn.apache.org/viewvc?rev=958257&view=rev Log: DERBY-4711: Hung thread after another thread is interrupted Added some comments to explain the fix. Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/services/locks/ConcurrentLockSet.java db/derby/code/trunk/java/engine/org/apache/derby/impl/services/locks/LockSet.java Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/services/locks/ConcurrentLockSet.java URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/services/locks/ConcurrentLockSet.java?rev=958257&r1=958256&r2=958257&view=diff ============================================================================== --- db/derby/code/trunk/java/engine/org/apache/derby/impl/services/locks/ConcurrentLockSet.java (original) +++ db/derby/code/trunk/java/engine/org/apache/derby/impl/services/locks/ConcurrentLockSet.java Sat Jun 26 17:50:14 2010 @@ -468,6 +468,10 @@ forever: for (;;) { try { wakeupReason = waitingLock.waitForGrant(actualTimeout); } catch(StandardException e) { + // DERBY-4711: If waitForGrant() fails, we need to + // remove ourselves from the queue so that those + // behind us in the queue don't get stuck waiting for + // us. nextWaitingLock = control.getNextWaiter(waitingLock, true, this); throw e; } Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/services/locks/LockSet.java URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/services/locks/LockSet.java?rev=958257&r1=958256&r2=958257&view=diff ============================================================================== --- db/derby/code/trunk/java/engine/org/apache/derby/impl/services/locks/LockSet.java (original) +++ db/derby/code/trunk/java/engine/org/apache/derby/impl/services/locks/LockSet.java Sat Jun 26 17:50:14 2010 @@ -281,6 +281,10 @@ forever: for (;;) { try { wakeupReason = waitingLock.waitForGrant(actualTimeout); } catch(StandardException e) { + // DERBY-4711: If waitForGrant() fails, we need to + // remove ourselves from the queue so that those + // behind us in the queue don't get stuck waiting for + // us. nextWaitingLock = control.getNextWaiter(waitingLock, true, this); throw e; }