Return-Path: X-Original-To: apmail-zookeeper-commits-archive@www.apache.org Delivered-To: apmail-zookeeper-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 9570510C87 for ; Fri, 2 Aug 2013 17:07:35 +0000 (UTC) Received: (qmail 29890 invoked by uid 500); 2 Aug 2013 17:07:35 -0000 Delivered-To: apmail-zookeeper-commits-archive@zookeeper.apache.org Received: (qmail 29821 invoked by uid 500); 2 Aug 2013 17:07:30 -0000 Mailing-List: contact commits-help@zookeeper.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@ Delivered-To: mailing list commits@zookeeper.apache.org Received: (qmail 27858 invoked by uid 99); 2 Aug 2013 17:07:28 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 02 Aug 2013 17:07:28 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.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, 02 Aug 2013 17:07:27 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 526A323888E7; Fri, 2 Aug 2013 17:07:07 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1509780 - in /zookeeper/branches/branch-3.4: CHANGES.txt src/java/main/org/apache/zookeeper/server/ServerCnxnFactory.java Date: Fri, 02 Aug 2013 17:07:07 -0000 To: commits@zookeeper.apache.org From: camille@apache.org X-Mailer: svnmailer-1.0.9 Message-Id: <20130802170707.526A323888E7@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: camille Date: Fri Aug 2 17:07:06 2013 New Revision: 1509780 URL: http://svn.apache.org/r1509780 Log: ZOOKEEPER-1731. Unsynchronized access to ServerCnxnFactory.connectionBeans results in deadlock. (Dave Latham via camille) Modified: zookeeper/branches/branch-3.4/CHANGES.txt zookeeper/branches/branch-3.4/src/java/main/org/apache/zookeeper/server/ServerCnxnFactory.java Modified: zookeeper/branches/branch-3.4/CHANGES.txt URL: http://svn.apache.org/viewvc/zookeeper/branches/branch-3.4/CHANGES.txt?rev=1509780&r1=1509779&r2=1509780&view=diff ============================================================================== --- zookeeper/branches/branch-3.4/CHANGES.txt (original) +++ zookeeper/branches/branch-3.4/CHANGES.txt Fri Aug 2 17:07:06 2013 @@ -81,6 +81,9 @@ BUGFIXES: ZOOKEEPER-1629. testTransactionLogCorruption occasionally fails. (shralex via camille) + ZOOKEEPER-1731. Unsynchronized access to ServerCnxnFactory.connectionBeans results in + deadlock. (Dave Latham via camille) + IMPROVEMENTS: ZOOKEEPER-1564. Allow JUnit test build with IBM Java Modified: zookeeper/branches/branch-3.4/src/java/main/org/apache/zookeeper/server/ServerCnxnFactory.java URL: http://svn.apache.org/viewvc/zookeeper/branches/branch-3.4/src/java/main/org/apache/zookeeper/server/ServerCnxnFactory.java?rev=1509780&r1=1509779&r2=1509780&view=diff ============================================================================== --- zookeeper/branches/branch-3.4/src/java/main/org/apache/zookeeper/server/ServerCnxnFactory.java (original) +++ zookeeper/branches/branch-3.4/src/java/main/org/apache/zookeeper/server/ServerCnxnFactory.java Fri Aug 2 17:07:06 2013 @@ -21,8 +21,9 @@ package org.apache.zookeeper.server; import java.io.IOException; import java.net.InetSocketAddress; import java.nio.ByteBuffer; -import java.util.HashMap; import java.util.HashSet; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; import javax.security.auth.login.Configuration; import javax.security.auth.login.LoginException; @@ -128,7 +129,8 @@ public abstract class ServerCnxnFactory public abstract InetSocketAddress getLocalAddress(); - private final HashMap connectionBeans = new HashMap(); + private final Map connectionBeans + = new ConcurrentHashMap(); protected final HashSet cnxns = new HashSet(); public void unregisterConnection(ServerCnxn serverCnxn) {