[ https://issues.apache.org/jira/browse/ZOOKEEPER-1861?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Camille Fournier updated ZOOKEEPER-1861: ---------------------------------------- Affects Version/s: 3.5.0 > ConcurrentHashMap isn't used properly in QuorumCnxManager > --------------------------------------------------------- > > Key: ZOOKEEPER-1861 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1861 > Project: ZooKeeper > Issue Type: Bug > Affects Versions: 3.5.0 > Reporter: Ted Yu > Assignee: Ted Yu > Priority: Minor > Fix For: 3.5.0 > > Attachments: zookeeper-1861-v1.txt, zookeeper-1861-v2.txt, > zookeeper-1861-v3.txt > > > queueSendMap is a ConcurrentHashMap. > At line 210: > {code} > if (!queueSendMap.containsKey(sid)) { > queueSendMap.put(sid, new ArrayBlockingQueue<ByteBuffer>( > SEND_CAPACITY)); > {code} > By the time control enters if block, there may be another concurrent put with > same sid to the ConcurrentHashMap. > putIfAbsent() should be used. > Similar issue occurs at line 307 as well. -- This message was sent by Atlassian JIRA (v6.1.5#6160)