[ https://issues.apache.org/jira/browse/HBASE-28918?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17890379#comment-17890379 ]
Istvan Toth commented on HBASE-28918: ------------------------------------- This is possibly related to the hbase-diagnostics refactoring. > Random object created and used only once in > org.apache.hadoop.hbase.util.LoadTestKVGenerator.getValueForRowColumn(int, > byte[][]) > -------------------------------------------------------------------------------------------------------------------------------- > > Key: HBASE-28918 > URL: https://issues.apache.org/jira/browse/HBASE-28918 > Project: HBase > Issue Type: Bug > Reporter: Wei-Chiu Chuang > Priority: Minor > > An unrelated spotbug warning popped up in one of precommit test. > [https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6342/4/artifact/yetus-general-check/output/branch-spotbugs-hbase-server-warnings.html] > > h2. Bad practice Warnings > ||Code||Warning|| > |DMI|Random object created and used only once in > org.apache.hadoop.hbase.util.LoadTestKVGenerator.getValueForRowColumn(int, > byte[][])| > | |[Bug type DMI_RANDOM_USED_ONLY_ONCE (click for > details)|https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6342/4/artifact/yetus-general-check/output/branch-spotbugs-hbase-server-warnings.html#DMI_RANDOM_USED_ONLY_ONCE] > In class org.apache.hadoop.hbase.util.LoadTestKVGenerator > In method > org.apache.hadoop.hbase.util.LoadTestKVGenerator.getValueForRowColumn(int, > byte[][]) > Called method java.util.Random.nextBytes(byte[]) > At LoadTestKVGenerator.java:[line 111]| > h1. Details > h2. DMI_RANDOM_USED_ONLY_ONCE: Random object created and used only once > This code creates a java.util.Random object, uses it to generate one random > number, and then discards the Random object. This produces mediocre quality > random numbers and is inefficient. If possible, rewrite the code so that the > Random object is created once and saved, and each time a new random number is > required invoke a method on the existing Random object to obtain it. > If it is important that the generated Random numbers not be guessable, you > _must_ not create a new Random for each random number; the values are too > easily guessable. You should strongly consider using a > java.security.SecureRandom instead (and avoid allocating a new SecureRandom > for each random number needed). -- This message was sent by Atlassian Jira (v8.20.10#820010)