You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by ri...@apache.org on 2022/02/14 17:15:18 UTC

[geode] branch WIP-GEODE-9892 updated: MOVED fix, more transactional lpush

This is an automated email from the ASF dual-hosted git repository.

ringles pushed a commit to branch WIP-GEODE-9892
in repository https://gitbox.apache.org/repos/asf/geode.git


The following commit(s) were added to refs/heads/WIP-GEODE-9892 by this push:
     new b1ff4dd  MOVED fix, more transactional lpush
b1ff4dd is described below

commit b1ff4ddb77c29ab14a892378c01fb868149d72db
Author: Ray Ingles <ri...@vmware.com>
AuthorDate: Mon Feb 14 12:11:58 2022 -0500

    MOVED fix, more transactional lpush
---
 .../redis/internal/commands/executor/list/LPushDUnitTest.java |  1 +
 .../java/org/apache/geode/redis/internal/data/RedisList.java  | 11 ++++++++---
 2 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/geode-for-redis/src/distributedTest/java/org/apache/geode/redis/internal/commands/executor/list/LPushDUnitTest.java b/geode-for-redis/src/distributedTest/java/org/apache/geode/redis/internal/commands/executor/list/LPushDUnitTest.java
index b77558b..029b28c 100644
--- a/geode-for-redis/src/distributedTest/java/org/apache/geode/redis/internal/commands/executor/list/LPushDUnitTest.java
+++ b/geode-for-redis/src/distributedTest/java/org/apache/geode/redis/internal/commands/executor/list/LPushDUnitTest.java
@@ -64,6 +64,7 @@ public class LPushDUnitTest {
   @Before
   public void testSetup() {
     clusterStartUp.startRedisVM(1, locator.getPort());
+    clusterStartUp.rebalanceAllRegions();
     int redisServerPort = clusterStartUp.getRedisPort(1);
     jedis = new JedisCluster(new HostAndPort(BIND_ADDRESS, redisServerPort), REDIS_CLIENT_TIMEOUT);
     GeodeAwaitility.await().during(Duration.ofMillis(500)).until(() -> true);
diff --git a/geode-for-redis/src/main/java/org/apache/geode/redis/internal/data/RedisList.java b/geode-for-redis/src/main/java/org/apache/geode/redis/internal/data/RedisList.java
index 307d2ec..61f9b79 100644
--- a/geode-for-redis/src/main/java/org/apache/geode/redis/internal/data/RedisList.java
+++ b/geode-for-redis/src/main/java/org/apache/geode/redis/internal/data/RedisList.java
@@ -49,9 +49,10 @@ public class RedisList extends AbstractRedisData {
    * @return the number of elements actually added
    */
   public long lpush(List<byte[]> elementsToAdd, Region<RedisKey, RedisData> region, RedisKey key) {
-    for (byte[] element : elementsToAdd) {
-      elementPush(element);
-    }
+    // for (byte[] element : elementsToAdd) {
+    // elementPush(element);
+    // }
+    elementsPush(elementsToAdd);
     storeChanges(region, key, new AddByteArrays(elementsToAdd));
     return elementList.size();
   }
@@ -131,6 +132,10 @@ public class RedisList extends AbstractRedisData {
     elementList.addFirst(element);
   }
 
+  public synchronized void elementsPush(List<byte[]> elementsToAdd) {
+    elementList.addAll(0, elementsToAdd);
+  }
+
   @Override
   public RedisDataType getType() {
     return REDIS_LIST;