[
https://issues.apache.org/jira/browse/HBASE-11537?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Mike Drob updated HBASE-11537:
------------------------------
Attachment: HBASE-11537.patch.txt
This patch swaps out the use of synchronization on a {{ConcurrentMap}} with
calls to {{putIfAbsent}} and the conditional {{remove}}.
We also remove a dead store of the result of {{pool.submit()}} since we return
from the method immediately. And remove the unreachable null check in the catch
block because if something threw an exception then it's not possible for the
given {{Future}} to have been assigned.
I'm not sure how to write additional tests for this, but the existing tests
pass for me. Would love to hear feedback.
> Avoid synchronization on instances of ConcurrentMap
> ---------------------------------------------------
>
> Key: HBASE-11537
> URL: https://issues.apache.org/jira/browse/HBASE-11537
> Project: HBase
> Issue Type: Bug
> Reporter: Mike Drob
> Assignee: Mike Drob
> Priority: Minor
> Labels: findbugs
> Attachments: HBASE-11537.patch.txt
>
>
> In {{ProcedureCoordinator}} and {{ProcedureMember}} we synchronize on an
> instance of {{ConcurrentMap}} instead of using the interface methods for
> dealing with concurrent access.
--
This message was sent by Atlassian JIRA
(v6.2#6252)