[ https://issues.apache.org/jira/browse/HBASE-11685?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14094691#comment-14094691 ]
Nicolas Liochon commented on HBASE-11685: ----------------------------------------- + refCount = new AtomicInteger(1); Could be replaced by a simple set, this would allow refCount to be final. It's theoretically better. I wonder if the "throw new RuntimeException("Negative ref count of connection: " + this;" cannot have a race condition with this set to 1 in the finalize? It could be simple to simply log a warning? > Incr/decr on the reference count of HConnectionImplementation need be atomic > ----------------------------------------------------------------------------- > > Key: HBASE-11685 > URL: https://issues.apache.org/jira/browse/HBASE-11685 > Project: HBase > Issue Type: Bug > Components: Client > Reporter: Liu Shaohui > Assignee: Liu Shaohui > Priority: Minor > Fix For: 2.0.0 > > Attachments: HBASE-11685-trunk-v1.diff, HBASE-11685-trunk-v2.diff, > HBASE-11685-trunk-v3.diff, HBASE-11685-trunk-v4.diff, > HBASE-11685-trunk-v5.diff, HBASE-11685-trunk-v6.diff > > > Currently, the incr/decr operation on the ref count of > HConnectionImplementation are not atomic. This may cause that the ref count > always be larger than 0 and the connection never be closed. > {code} > /** > * Increment this client's reference count. > */ > void incCount() { > ++refCount; > } > /** > * Decrement this client's reference count. > */ > void decCount() { > if (refCount > 0) { > --refCount; > } > } > {code} -- This message was sent by Atlassian JIRA (v6.2#6252)