GEODE-8766: reduce collisions during hget in AbstractHashesIntegrationTest (#5841)

* add retry logic if hset fails

* remove (psuedo)randString method from test to avoid collisions

Co-authored-by: john Hutchison <hutchisonjo@vmware.com>
diff --git a/geode-redis/src/integrationTest/java/org/apache/geode/redis/internal/executor/hash/AbstractHashesIntegrationTest.java b/geode-redis/src/integrationTest/java/org/apache/geode/redis/internal/executor/hash/AbstractHashesIntegrationTest.java
index 9f0c2d2..7212416 100755
--- a/geode-redis/src/integrationTest/java/org/apache/geode/redis/internal/executor/hash/AbstractHashesIntegrationTest.java
+++ b/geode-redis/src/integrationTest/java/org/apache/geode/redis/internal/executor/hash/AbstractHashesIntegrationTest.java
@@ -18,7 +18,6 @@
 import static org.assertj.core.api.Assertions.assertThatThrownBy;
 import static org.assertj.core.api.Assertions.offset;
 
-import java.io.IOException;
 import java.text.DecimalFormat;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -30,7 +29,6 @@
 import java.util.concurrent.ArrayBlockingQueue;
 import java.util.concurrent.atomic.AtomicLong;
 
-import org.apache.commons.lang3.RandomStringUtils;
 import org.assertj.core.util.Maps;
 import org.junit.After;
 import org.junit.Before;
@@ -51,7 +49,7 @@
   private static int ITERATION_COUNT = 4000;
 
   @Before
-  public void setUp() throws IOException {
+  public void setUp() {
     rand = new Random();
     jedis = new Jedis("localhost", getPort(), 10000000);
     jedis2 = new Jedis("localhost", getPort(), 10000000);
@@ -103,10 +101,10 @@
   @Test
   public void testHMSet() {
     int num = 10;
-    String key = randString();
+    String key = "key";
     Map<String, String> hash = new HashMap<String, String>();
     for (int i = 0; i < num; i++) {
-      hash.put(randString(), randString());
+      hash.put("field_" + i, "member_" + i);
     }
     String response = jedis.hmset(key, hash);
     assertThat(response).isEqualTo("OK");
@@ -115,14 +113,16 @@
 
   @Test
   public void testHSet() {
-    String key = randString();
+    String key = "key";
     Map<String, String> hash = new HashMap<String, String>();
 
     for (int i = 0; i < 10; i++) {
-      hash.put(randString(), randString());
+      hash.put("field_" + i, "member_" + i);
     }
+
     Set<String> keys = hash.keySet();
     Long count = 1L;
+
     for (String field : keys) {
       Long res = jedis.hset(key, field, hash.get(field));
       assertThat(res).isEqualTo(1);
@@ -134,12 +134,10 @@
 
   @Test
   public void testHMGetHDelHGetAllHVals() {
-    String key = randString();
+    String key = "key";
     Map<String, String> hash = new HashMap<String, String>();
     for (int i = 0; i < 10; i++) {
-      String m = randString();
-      String f = randString();
-      hash.put(m, f);
+      hash.put("field_" + i, "member_" + i);
     }
     jedis.hmset(key, hash);
     Set<String> keys = hash.keySet();
@@ -203,10 +201,10 @@
 
   @Test
   public void testHkeys() {
-    String key = randString();
+    String key = "key";
     Map<String, String> hash = new HashMap<String, String>();
     for (int i = 0; i < 10; i++) {
-      hash.put(randString(), randString());
+      hash.put("field_" + i, "member_" + i);
     }
     jedis.hmset(key, hash);
 
@@ -218,8 +216,8 @@
 
   @Test
   public void testHIncrBy() {
-    String key = randString();
-    String field = randString();
+    String key = "key";
+    String field = "field";
 
     Long incr = (long) rand.nextInt(50);
     if (incr == 0) {
@@ -229,14 +227,14 @@
     long response1 = jedis.hincrBy(key, field, incr);
     assertThat(response1).isEqualTo(incr);
 
-    long response2 = jedis.hincrBy(randString(), randString(), incr);
+    long response2 = jedis.hincrBy("newHash", "newField", incr);
     assertThat(response2).isEqualTo(incr);
 
     long response3 = jedis.hincrBy(key, field, incr);
     assertThat(response3).as(response3 + "=" + 2 * incr)
         .isEqualTo(2 * incr);
 
-    String field1 = randString();
+    String field1 = "field1";
     long myincr = incr;
     assertThatThrownBy(() -> {
       jedis.hincrBy(key, field1, Long.MAX_VALUE);
@@ -247,8 +245,8 @@
 
   @Test
   public void testHIncrFloatBy() {
-    String key = randString();
-    String field = randString();
+    String key = "key";
+    String field = "field";
 
     DecimalFormat decimalFormat = new DecimalFormat("#.#####");
     double incr = rand.nextDouble();
@@ -263,7 +261,7 @@
 
     assertThat(response1).isEqualTo(Double.valueOf(jedis.hget(key, field)), offset(.00001));
 
-    double response2 = jedis.hincrByFloat(randString(), randString(), incr);
+    double response2 = jedis.hincrByFloat("new", "newField", incr);
 
     assertThat(response2).isEqualTo(incr, offset(.00001));
 
@@ -276,8 +274,8 @@
 
   @Test
   public void incrByFloatFailsWithNonFloatFieldValue() {
-    String key = randString();
-    String field = randString();
+    String key = "key";
+    String field = "field";
     jedis.hset(key, field, "foobar");
     assertThatThrownBy(() -> {
       jedis.hincrByFloat(key, field, 1.5);
@@ -345,9 +343,9 @@
    */
   @Test
   public void testHSetNXExecutor() {
-    String key = "HSetNX" + randString();
-    String field = randString();
-    String value = randString();
+    String key = "HSetNX_Key";
+    String field = "field";
+    String value = "value";
 
     // 1 if field is a new field in the hash and value was set.
     Long result = jedis.hsetnx(key, field, value);
@@ -371,11 +369,11 @@
    * Test the HVALS command
    */
   @Test
-  public void testHVals() throws Exception {
-    String key = "HVals" + randString();
-    String field1 = randString();
-    String field2 = randString();
-    String value = randString();
+  public void testHVals() {
+    String key = "HVals_key";
+    String field1 = "field_1";
+    String field2 = "field_2";
+    String value = "value";
 
     List<String> list = jedis.hvals(key);
     assertThat(list == null || list.isEmpty()).isTrue();
@@ -412,10 +410,10 @@
   @Test
   public void testHLen() {
 
-    String key = "HLen" + randString();
-    String field1 = randString();
-    String field2 = randString();
-    String value = randString();
+    String key = "HLen_key";
+    String field1 = "field_1";
+    String field2 = "field_2";
+    String value = "value";
 
     Long result = jedis.hlen(key); // check error handling when key does not exist
 
@@ -446,11 +444,11 @@
    */
   @Test
   public void testHKeys() {
-    String key = "HKeys" + randString();
-    String field1 = randString();
-    String field2 = randString();
-    String field1Value = randString();
-    String field2Value = randString();
+    String key = "HKeys_key";
+    String field1 = "field_1";
+    String field2 = "field_2";
+    String field1Value = "field1Value";
+    String field2Value = "field2Value";
 
     Set<String> set = jedis.hkeys(key);
     assertThat(set == null || set.isEmpty()).isTrue();
@@ -482,15 +480,15 @@
   @Test
   public void testHGETALL() {
 
-    String key = "HGETALL" + randString();
+    String key = "HGETALL_key";
 
     Map<String, String> map = jedis.hgetAll(key);
     assertThat(map == null || map.isEmpty()).isTrue();
 
-    String field1 = randString();
-    String field2 = randString();
-    String field1Value = randString();
-    String field2Value = randString();
+    String field1 = "field_1";
+    String field2 = "field_2";
+    String field1Value = "field1Value";
+    String field2Value = "field2Value";
 
     Long result = jedis.hset(key, field1, field1Value);
     assertThat(result).isEqualTo(1);
@@ -508,13 +506,13 @@
 
   @Test
   public void testHsetHandlesMultipleFields() {
-    String key = "key" + randString();
+    String key = "key";
 
     Long fieldsAdded;
 
     Map<String, String> hsetMap = new HashMap<>();
-    hsetMap.put(randString(), randString());
-    hsetMap.put(randString(), randString());
+    hsetMap.put("key_1", "value_1");
+    hsetMap.put("key_2", "value_2");
 
     fieldsAdded = jedis.hset(key, hsetMap);
 
@@ -560,7 +558,7 @@
 
   @Test
   public void testConcurrentHSetNX() {
-    String key = "HSETNX" + randString();
+    String key = "HSETNX_key";
 
     AtomicLong successCount = new AtomicLong();
     new ConcurrentLoopingThreads(ITERATION_COUNT,
@@ -620,8 +618,8 @@
 
   @Test
   public void testConcurrentHIncrByFloat_sameKeyPerClient() throws InterruptedException {
-    String key = "HSET" + randString();
-    String field = "FIELD" + randString();
+    String key = "HSET_KEY";
+    String field = "HSET_FIELD";
 
     jedis.hset(key, field, "0");
 
@@ -717,19 +715,13 @@
   private void doABunchOfHSets(String key, Map<String, String> record, Jedis jedis) {
     String field;
     String fieldValue;
+
     for (int i = 0; i < ITERATION_COUNT; i++) {
-      field = randString();
-      fieldValue = randString();
+      field = "key_" + i;
+      fieldValue = "value_" + i;
 
       record.put(field, fieldValue);
-
       jedis.hset(key, field, fieldValue);
     }
   }
-
-  private String randString() {
-    int length = rand.nextInt(8) + 5;
-    return RandomStringUtils.randomAlphanumeric(length);
-  }
-
 }