[ https://issues.apache.org/jira/browse/HBASE-15702?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15261575#comment-15261575 ]
Hiroshi Ikeda commented on HBASE-15702: --------------------------------------- Just create static final fields. That is not even "initialization-on-demand holder idiom" but googling it might help you. > Improve PerClientRandomNonceGenerator > ------------------------------------- > > Key: HBASE-15702 > URL: https://issues.apache.org/jira/browse/HBASE-15702 > Project: HBase > Issue Type: Improvement > Reporter: Hiroshi Ikeda > Priority: Trivial > Fix For: 2.0.0 > > Attachments: HBASE-15702.patch, HBASE-15702_v1.patch > > > PerClientRandomNonceGenerator can be exposed to all the threads via the > static field ConnectionManager.nonceGenerator, but > PerClientRandomNonceGenerator uses Random, which should be ThreadLocalRandom > or something. (See javadoc of Random.) > Moreover, ConnectionManager creates or refers the singleton instance of > PerClientThreadLocalRandom with a lock or volatile, but it should be created > as a static final field in PerClientThreadLocalRandom itself, and the > creation will be postponed until the field is actually refereed and the class > is being initialized. > The same can be said for ConnectionManager.NoNonceGenerator. -- This message was sent by Atlassian JIRA (v6.3.4#6332)