You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by sb...@apache.org on 2015/08/06 20:27:13 UTC
[3/4] incubator-geode git commit: Fix for GEODE-109
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/1a6a0ef5/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/FlushAllExecutor.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/FlushAllExecutor.java b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/FlushAllExecutor.java
index 7f8d4e0..40c22b6 100755
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/FlushAllExecutor.java
+++ b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/FlushAllExecutor.java
@@ -2,6 +2,7 @@ package com.gemstone.gemfire.internal.redis.executor;
import java.util.Map.Entry;
+import com.gemstone.gemfire.cache.EntryDestroyedException;
import com.gemstone.gemfire.cache.UnsupportedOperationInTransactionException;
import com.gemstone.gemfire.internal.redis.Coder;
import com.gemstone.gemfire.internal.redis.Command;
@@ -15,11 +16,15 @@ public class FlushAllExecutor extends AbstractExecutor {
if (context.hasTransaction())
throw new UnsupportedOperationInTransactionException();
- for (Entry<String, RedisDataType> e: context.getRegionCache().metaEntrySet()) {
- String skey = e.getKey();
- RedisDataType type = e.getValue();
- removeEntry(Coder.stringToByteWrapper(skey), type, context);
-
+ for (Entry<String, RedisDataType> e: context.getRegionProvider().metaEntrySet()) {
+ try {
+ String skey = e.getKey();
+ RedisDataType type = e.getValue();
+ removeEntry(Coder.stringToByteWrapper(skey), type, context);
+ } catch (EntryDestroyedException e1) {
+ continue;
+ }
+
}
command.setResponse(Coder.getSimpleStringResponse(context.getByteBufAllocator(), "OK"));
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/1a6a0ef5/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/KeysExecutor.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/KeysExecutor.java b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/KeysExecutor.java
index 4276e9f..2588217 100755
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/KeysExecutor.java
+++ b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/KeysExecutor.java
@@ -11,7 +11,7 @@ import com.gemstone.gemfire.internal.redis.Command;
import com.gemstone.gemfire.internal.redis.ExecutionHandlerContext;
import com.gemstone.gemfire.internal.redis.RedisConstants;
import com.gemstone.gemfire.internal.redis.RedisConstants.ArityDef;
-import com.gemstone.gemfire.internal.redis.executor.org.apache.hadoop.fs.GlobPattern;
+import com.gemstone.gemfire.internal.redis.org.apache.hadoop.fs.GlobPattern;
import com.gemstone.gemfire.redis.GemFireRedisServer;
public class KeysExecutor extends AbstractExecutor {
@@ -25,7 +25,7 @@ public class KeysExecutor extends AbstractExecutor {
}
String glob = Coder.bytesToString(commandElems.get(1));
- Set<String> allKeys = context.getRegionCache().metaKeySet();
+ Set<String> allKeys = context.getRegionProvider().metaKeySet();
List<String> matchingKeys = new ArrayList<String>();
Pattern pattern;
@@ -37,8 +37,7 @@ public class KeysExecutor extends AbstractExecutor {
}
for (String key: allKeys) {
- if (!(key.equals(GemFireRedisServer.LISTS_META_DATA_REGION) ||
- key.equals(GemFireRedisServer.REDIS_META_DATA_REGION) ||
+ if (!(key.equals(GemFireRedisServer.REDIS_META_DATA_REGION) ||
key.equals(GemFireRedisServer.STRING_REGION) ||
key.equals(GemFireRedisServer.HLL_REGION))
&& pattern.matcher(key).matches())
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/1a6a0ef5/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/ListQuery.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/ListQuery.java b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/ListQuery.java
index 3980061..4ae9990 100644
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/ListQuery.java
+++ b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/ListQuery.java
@@ -4,19 +4,19 @@ public enum ListQuery {
LINDEX {
public String getQueryString(String fullpath) {
- return "SELECT DISTINCT entry.key, entry.value FROM " + fullpath + ".entrySet entry ORDER BY key asc LIMIT $1";
+ return "SELECT DISTINCT entry.key, entry.value FROM " + fullpath + ".entrySet entry WHERE key != 'head' AND key != 'tail' ORDER BY key asc LIMIT $1";
}
}, LRANGE {
public String getQueryString(String fullpath) {
- return "SELECT DISTINCT entry.key, entry.value FROM " + fullpath + ".entrySet entry ORDER BY key asc LIMIT $1";
+ return "SELECT DISTINCT entry.key, entry.value FROM " + fullpath + ".entrySet entry WHERE key != 'head' AND key != 'tail' ORDER BY key asc LIMIT $1";
}
}, LREMG {
public String getQueryString(String fullpath) {
- return "SELECT DISTINCT entry.key, entry.value FROM " + fullpath + ".entrySet entry WHERE value = $1 ORDER BY key asc LIMIT $2";
+ return "SELECT DISTINCT entry.key, entry.value FROM " + fullpath + ".entrySet entry WHERE value = $1 AND key != 'head' AND key != 'tail' ORDER BY key asc LIMIT $2";
}
}, LREML {
public String getQueryString(String fullpath) {
- return "SELECT DISTINCT entry.key, entry.value FROM " + fullpath + ".entrySet entry WHERE value = $1 ORDER BY key desc LIMIT $2";
+ return "SELECT DISTINCT entry.key, entry.value FROM " + fullpath + ".entrySet entry WHERE value = $1 AND key != 'head' AND key != 'tail' ORDER BY key desc LIMIT $2";
}
}, LREME {
public String getQueryString(String fullpath) {
@@ -24,11 +24,11 @@ public enum ListQuery {
}
}, LSET {
public String getQueryString(String fullpath) {
- return "SELECT DISTINCT * FROM " + fullpath + ".keySet key ORDER BY key asc LIMIT $1";
+ return "SELECT DISTINCT * FROM " + fullpath + ".keySet key WHERE key != 'head' AND key != 'tail' ORDER BY key asc LIMIT $1";
}
}, LTRIM {
public String getQueryString(String fullpath) {
- return "SELECT DISTINCT * FROM " + fullpath + ".keySet key ORDER BY key asc LIMIT $1";
+ return "SELECT DISTINCT * FROM " + fullpath + ".keySet key WHERE key != 'head' AND key != 'tail' ORDER BY key asc LIMIT $1";
}
};
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/1a6a0ef5/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/PersistExecutor.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/PersistExecutor.java b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/PersistExecutor.java
index b027c9f..85ed437 100755
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/PersistExecutor.java
+++ b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/PersistExecutor.java
@@ -25,7 +25,7 @@ public class PersistExecutor extends AbstractExecutor {
ByteArrayWrapper key = command.getKey();
- boolean canceled = context.getRegionCache().cancelKeyExpiration(key);
+ boolean canceled = context.getRegionProvider().cancelKeyExpiration(key);
if (canceled)
command.setResponse(Coder.getIntegerResponse(context.getByteBufAllocator(), TIMEOUT_REMOVED));
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/1a6a0ef5/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/PingExecutor.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/PingExecutor.java b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/PingExecutor.java
index 9585b61..3387687 100755
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/PingExecutor.java
+++ b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/PingExecutor.java
@@ -1,7 +1,7 @@
package com.gemstone.gemfire.internal.redis.executor;
-import com.gemstone.gemfire.internal.redis.Command;
import com.gemstone.gemfire.internal.redis.Coder;
+import com.gemstone.gemfire.internal.redis.Command;
import com.gemstone.gemfire.internal.redis.ExecutionHandlerContext;
public class PingExecutor extends AbstractExecutor {
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/1a6a0ef5/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/QuitExecutor.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/QuitExecutor.java b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/QuitExecutor.java
index 88f0574..2bca4fb 100755
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/QuitExecutor.java
+++ b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/QuitExecutor.java
@@ -1,9 +1,9 @@
package com.gemstone.gemfire.internal.redis.executor;
+import com.gemstone.gemfire.internal.redis.Coder;
import com.gemstone.gemfire.internal.redis.Command;
import com.gemstone.gemfire.internal.redis.ExecutionHandlerContext;
import com.gemstone.gemfire.internal.redis.RedisConstants;
-import com.gemstone.gemfire.internal.redis.Coder;
public class QuitExecutor extends AbstractExecutor {
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/1a6a0ef5/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/ScanExecutor.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/ScanExecutor.java b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/ScanExecutor.java
index a87c725..9257aff 100755
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/ScanExecutor.java
+++ b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/ScanExecutor.java
@@ -84,7 +84,7 @@ public class ScanExecutor extends AbstractScanExecutor {
}
@SuppressWarnings("unchecked")
- List<String> returnList = (List<String>) getIteration(context.getRegionCache().metaKeySet(), matchPattern, count, cursor);
+ List<String> returnList = (List<String>) getIteration(context.getRegionProvider().metaKeySet(), matchPattern, count, cursor);
command.setResponse(Coder.getScanResponse(context.getByteBufAllocator(), returnList));
}
@@ -98,7 +98,7 @@ public class ScanExecutor extends AbstractScanExecutor {
int numElements = 0;
int i = -1;
for (String key: (Collection<String>) list) {
- if (key.equals(GemFireRedisServer.REDIS_META_DATA_REGION) || key.equals(GemFireRedisServer.LISTS_META_DATA_REGION) || key.equals(GemFireRedisServer.STRING_REGION) || key.equals(GemFireRedisServer.HLL_REGION))
+ if (key.equals(GemFireRedisServer.REDIS_META_DATA_REGION) || key.equals(GemFireRedisServer.STRING_REGION) || key.equals(GemFireRedisServer.HLL_REGION))
continue;
i++;
if (beforeCursor < cursor) {
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/1a6a0ef5/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/SortedSetQuery.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/SortedSetQuery.java b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/SortedSetQuery.java
index 97d0398..24788dd 100644
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/SortedSetQuery.java
+++ b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/SortedSetQuery.java
@@ -104,67 +104,67 @@ public enum SortedSetQuery {
}
}, ZRBSNINFI {
public String getQueryString(String fullpath) {
- return "SELECT DISTINCT entry.key, entry.value FROM " + fullpath + ".entrySet entry WHERE value.score <= $1 ORDER BY value asc LIMIT $2";
+ return "SELECT DISTINCT entry.key, entry.value FROM " + fullpath + ".entrySet entry WHERE value.score <= $1 ORDER BY entry.value asc LIMIT $2";
}
}, ZRBSNINF {
public String getQueryString(String fullpath) {
- return "SELECT DISTINCT entry.key, entry.value FROM " + fullpath + ".entrySet entry WHERE value.score < $1 ORDER BY value asc LIMIT $2";
+ return "SELECT DISTINCT entry.key, entry.value FROM " + fullpath + ".entrySet entry WHERE entry.value.score < $1 ORDER BY entry.value asc LIMIT $2";
}
}, ZRBSPINFI {
public String getQueryString(String fullpath) {
- return "SELECT DISTINCT entry.key, entry.value FROM " + fullpath + ".entrySet entry WHERE value.score >= $1 ORDER BY value asc LIMIT $2";
+ return "SELECT DISTINCT entry.key, entry.value FROM " + fullpath + ".entrySet entry WHERE entry.value.score >= $1 ORDER BY entry.value asc LIMIT $2";
}
}, ZRBSPINF {
public String getQueryString(String fullpath) {
- return "SELECT DISTINCT entry.key, entry.value FROM " + fullpath + ".entrySet entry WHERE value.score > $1 ORDER BY value asc LIMIT $2";
+ return "SELECT DISTINCT entry.key, entry.value FROM " + fullpath + ".entrySet entry WHERE entry.value.score > $1 ORDER BY entry.value asc LIMIT $2";
}
}, ZRBSSTISI {
public String getQueryString(String fullpath) {
- return "SELECT DISTINCT entry.key, entry.value FROM " + fullpath + ".entrySet entry WHERE value.score >= $1 AND value.score <= $2 ORDER BY value asc LIMIT $3";
+ return "SELECT DISTINCT entry.key, entry.value FROM " + fullpath + ".entrySet entry WHERE entry.value.score >= $1 AND entry.value.score <= $2 ORDER BY entry.value asc LIMIT $3";
}
}, ZRBSSTI {
public String getQueryString(String fullpath) {
- return "SELECT DISTINCT entry.key, entry.value FROM " + fullpath + ".entrySet entry WHERE value.score >= $1 AND value.score < $2 ORDER BY value asc LIMIT $3";
+ return "SELECT DISTINCT entry.key, entry.value FROM " + fullpath + ".entrySet entry WHERE entry.value.score >= $1 AND entry.value.score < $2 ORDER BY entry.value asc LIMIT $3";
}
}, ZRBSSI {
public String getQueryString(String fullpath) {
- return "SELECT DISTINCT entry.key, entry.value FROM " + fullpath + ".entrySet entry WHERE value.score > $1 AND value.score <= $2 ORDER BY value asc LIMIT $3";
+ return "SELECT DISTINCT entry.key, entry.value FROM " + fullpath + ".entrySet entry WHERE entry.value.score > $1 AND entry.value.score <= $2 ORDER BY entry.value asc LIMIT $3";
}
}, ZRBS {
public String getQueryString(String fullpath) {
- return "SELECT DISTINCT entry.key, entry.value FROM " + fullpath + ".entrySet entry WHERE value.score > $1 AND value.score < $2 ORDER BY value asc LIMIT $3";
+ return "SELECT DISTINCT entry.key, entry.value FROM " + fullpath + ".entrySet entry WHERE entry.value.score > $1 AND entry.value.score < $2 ORDER BY entry.value asc LIMIT $3";
}
}, ZREVRBSNINFI {
public String getQueryString(String fullpath) {
- return "SELECT DISTINCT entry.key, entry.value FROM " + fullpath + ".entrySet entry WHERE value <= $1 ORDER BY value desc, key desc LIMIT $2";
+ return "SELECT DISTINCT entry.key, entry.value FROM " + fullpath + ".entrySet entry WHERE value <= $1 ORDER BY entry.value desc, entry.key desc LIMIT $2";
}
}, ZREVRBSNINF {
public String getQueryString(String fullpath) {
- return "SELECT DISTINCT entry.key, entry.value FROM " + fullpath + ".entrySet entry WHERE value.score < $1 ORDER BY value desc, key desc LIMIT $2";
+ return "SELECT DISTINCT entry.key, entry.value FROM " + fullpath + ".entrySet entry WHERE entry.value.score < $1 ORDER BY entry.value desc, entry.key desc LIMIT $2";
}
}, ZREVRBSPINFI {
public String getQueryString(String fullpath) {
- return "SELECT DISTINCT entry.key, entry.value FROM " + fullpath + ".entrySet entry WHERE value.score >= $1 ORDER BY value desc, key desc LIMIT $2";
+ return "SELECT DISTINCT entry.key, entry.value FROM " + fullpath + ".entrySet entry WHERE entry.value.score >= $1 ORDER BY entry.value desc, entry.key desc LIMIT $2";
}
}, ZREVRBSPINF {
public String getQueryString(String fullpath) {
- return "SELECT DISTINCT entry.key, entry.value FROM " + fullpath + ".entrySet entry WHERE value.score > $1 ORDER BY value desc, key desc LIMIT $2";
+ return "SELECT DISTINCT entry.key, entry.value FROM " + fullpath + ".entrySet entry WHERE entry.value.score > $1 ORDER BY entry.value desc, entry.key desc LIMIT $2";
}
}, ZREVRBSSTISI {
public String getQueryString(String fullpath) {
- return "SELECT DISTINCT entry.key, entry.value FROM " + fullpath + ".entrySet entry WHERE value.score >= $1 AND value.score <= $2 ORDER BY value desc, key desc LIMIT $3";
+ return "SELECT DISTINCT entry.key, entry.value FROM " + fullpath + ".entrySet entry WHERE entry.value.score >= $1 AND entry.value.score <= $2 ORDER BY entry.value desc, entry.key desc LIMIT $3";
}
}, ZREVRBSSTI {
public String getQueryString(String fullpath) {
- return "SELECT DISTINCT entry.key, entry.value FROM " + fullpath + ".entrySet entry WHERE value.score >= $1 AND value.score < $2 ORDER BY value desc, key desc LIMIT $3";
+ return "SELECT DISTINCT entry.key, entry.value FROM " + fullpath + ".entrySet entry WHERE entry.value.score >= $1 AND entry.value.score < $2 ORDER BY entry.value desc, entry.key desc LIMIT $3";
}
}, ZREVRBSSI {
public String getQueryString(String fullpath) {
- return "SELECT DISTINCT entry.key, entry.value FROM " + fullpath + ".entrySet entry WHERE value.score > $1 AND value.score <= $2 ORDER BY value desc, key desc LIMIT $3";
+ return "SELECT DISTINCT entry.key, entry.value FROM " + fullpath + ".entrySet entry WHERE entry.value.score > $1 AND entry.value.score <= $2 ORDER BY entry.value desc, entry.key desc LIMIT $3";
}
}, ZREVRBS {
public String getQueryString(String fullpath) {
- return "SELECT DISTINCT entry.key, entry.value FROM " + fullpath + ".entrySet entry WHERE value.score > $1 AND value.score < $2 ORDER BY value desc, key desc LIMIT $3";
+ return "SELECT DISTINCT entry.key, entry.value FROM " + fullpath + ".entrySet entry WHERE entry.value.score > $1 AND entry.value.score < $2 ORDER BY entry.value desc, entry.key desc LIMIT $3";
}
}, ZREVRANGE {
public String getQueryString(String fullpath) {
@@ -176,11 +176,11 @@ public enum SortedSetQuery {
}
}, ZRANK {
public String getQueryString(String fullpath) {
- return "SELECT COUNT(*) FROM " + fullpath + ".entrySet entry WHERE value < $1 OR (value = $2 AND key.compareTo($3) < 0)";
+ return "SELECT COUNT(*) FROM " + fullpath + ".entrySet entry WHERE entry.value < $1 OR (entry.value = $2 AND entry.key.compareTo($3) < 0)";
}
}, ZREVRANK {
public String getQueryString(String fullpath) {
- return "SELECT COUNT(*) FROM " + fullpath + ".entrySet entry WHERE value > $1 OR (value = $2 AND key.compareTo($3) > 0)";
+ return "SELECT COUNT(*) FROM " + fullpath + ".entrySet entry WHERE entry.value > $1 OR (entry.value = $2 AND entry.key.compareTo($3) > 0)";
}
};
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/1a6a0ef5/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/TTLExecutor.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/TTLExecutor.java b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/TTLExecutor.java
index 91ed98c..47f2f49 100755
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/TTLExecutor.java
+++ b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/TTLExecutor.java
@@ -9,7 +9,7 @@ import com.gemstone.gemfire.internal.redis.ExecutionHandlerContext;
import com.gemstone.gemfire.internal.redis.Extendable;
import com.gemstone.gemfire.internal.redis.RedisConstants.ArityDef;
import com.gemstone.gemfire.internal.redis.RedisDataType;
-import com.gemstone.gemfire.internal.redis.RegionCache;
+import com.gemstone.gemfire.internal.redis.RegionProvider;
public class TTLExecutor extends AbstractExecutor implements Extendable {
@@ -27,7 +27,7 @@ public class TTLExecutor extends AbstractExecutor implements Extendable {
}
ByteArrayWrapper key = command.getKey();
- RegionCache rC = context.getRegionCache();
+ RegionProvider rC = context.getRegionProvider();
boolean exists = false;
RedisDataType val = rC.getRedisDataType(key);
if (val != null)
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/1a6a0ef5/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/TypeExecutor.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/TypeExecutor.java b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/TypeExecutor.java
index dc4172f..75e5e53 100755
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/TypeExecutor.java
+++ b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/TypeExecutor.java
@@ -21,7 +21,7 @@ public class TypeExecutor extends AbstractExecutor {
ByteArrayWrapper key = command.getKey();
- RedisDataType type = context.getRegionCache().getRedisDataType(key);
+ RedisDataType type = context.getRegionProvider().getRedisDataType(key);
if (type == null)
command.setResponse(Coder.getBulkStringResponse(context.getByteBufAllocator(), "none"));
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/1a6a0ef5/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/UnkownExecutor.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/UnkownExecutor.java b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/UnkownExecutor.java
index 524003d..fd64c39 100755
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/UnkownExecutor.java
+++ b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/UnkownExecutor.java
@@ -1,9 +1,9 @@
package com.gemstone.gemfire.internal.redis.executor;
+import com.gemstone.gemfire.internal.redis.Coder;
import com.gemstone.gemfire.internal.redis.Command;
import com.gemstone.gemfire.internal.redis.ExecutionHandlerContext;
import com.gemstone.gemfire.internal.redis.RedisConstants;
-import com.gemstone.gemfire.internal.redis.Coder;
public class UnkownExecutor extends AbstractExecutor {
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/1a6a0ef5/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/hash/HDelExecutor.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/hash/HDelExecutor.java b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/hash/HDelExecutor.java
index bd8777b..11122fe 100755
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/hash/HDelExecutor.java
+++ b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/hash/HDelExecutor.java
@@ -43,7 +43,7 @@ public class HDelExecutor extends HashExecutor {
numDeleted++;
}
if (keyRegion.isEmpty()) {
- context.getRegionCache().removeKey(key, RedisDataType.REDIS_HASH);
+ context.getRegionProvider().removeKey(key, RedisDataType.REDIS_HASH);
}
command.setResponse(Coder.getIntegerResponse(context.getByteBufAllocator(), numDeleted));
}
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/1a6a0ef5/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/hash/HGetAllExecutor.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/hash/HGetAllExecutor.java b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/hash/HGetAllExecutor.java
index 96eb5a9..ae8100e 100755
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/hash/HGetAllExecutor.java
+++ b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/hash/HGetAllExecutor.java
@@ -1,16 +1,17 @@
package com.gemstone.gemfire.internal.redis.executor.hash;
+import java.util.ArrayList;
+import java.util.Collection;
import java.util.List;
import java.util.Map;
-import java.util.Set;
import com.gemstone.gemfire.cache.Region;
import com.gemstone.gemfire.internal.redis.ByteArrayWrapper;
+import com.gemstone.gemfire.internal.redis.Coder;
import com.gemstone.gemfire.internal.redis.Command;
import com.gemstone.gemfire.internal.redis.ExecutionHandlerContext;
import com.gemstone.gemfire.internal.redis.RedisConstants.ArityDef;
import com.gemstone.gemfire.internal.redis.RedisDataType;
-import com.gemstone.gemfire.internal.redis.Coder;
public class HGetAllExecutor extends HashExecutor {
@@ -33,7 +34,7 @@ public class HGetAllExecutor extends HashExecutor {
return;
}
- Set<Map.Entry<ByteArrayWrapper,ByteArrayWrapper>> entries = keyRegion.entrySet();
+ Collection<Map.Entry<ByteArrayWrapper,ByteArrayWrapper>> entries = new ArrayList(keyRegion.entrySet()); // This creates a CopyOnRead behavior
if (entries.isEmpty()) {
command.setResponse(Coder.getEmptyArrayResponse(context.getByteBufAllocator()));
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/1a6a0ef5/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/hash/HKeysExecutor.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/hash/HKeysExecutor.java b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/hash/HKeysExecutor.java
index 988ac37..5c401ff 100755
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/hash/HKeysExecutor.java
+++ b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/hash/HKeysExecutor.java
@@ -1,15 +1,16 @@
package com.gemstone.gemfire.internal.redis.executor.hash;
+import java.util.HashSet;
import java.util.List;
import java.util.Set;
import com.gemstone.gemfire.cache.Region;
import com.gemstone.gemfire.internal.redis.ByteArrayWrapper;
+import com.gemstone.gemfire.internal.redis.Coder;
import com.gemstone.gemfire.internal.redis.Command;
import com.gemstone.gemfire.internal.redis.ExecutionHandlerContext;
-import com.gemstone.gemfire.internal.redis.RedisDataType;
-import com.gemstone.gemfire.internal.redis.Coder;
import com.gemstone.gemfire.internal.redis.RedisConstants.ArityDef;
+import com.gemstone.gemfire.internal.redis.RedisDataType;
public class HKeysExecutor extends HashExecutor {
@@ -32,7 +33,7 @@ public class HKeysExecutor extends HashExecutor {
return;
}
- Set<ByteArrayWrapper> keys = keyRegion.keySet();
+ Set<ByteArrayWrapper> keys = new HashSet(keyRegion.keySet());
if (keys.isEmpty()) {
command.setResponse(Coder.getEmptyArrayResponse(context.getByteBufAllocator()));
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/1a6a0ef5/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/hash/HScanExecutor.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/hash/HScanExecutor.java b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/hash/HScanExecutor.java
index fb0ddc0..ded681a 100755
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/hash/HScanExecutor.java
+++ b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/hash/HScanExecutor.java
@@ -2,6 +2,7 @@ package com.gemstone.gemfire.internal.redis.executor.hash;
import java.util.ArrayList;
import java.util.Collection;
+import java.util.HashSet;
import java.util.List;
import java.util.Map.Entry;
import java.util.regex.Pattern;
@@ -30,7 +31,7 @@ public class HScanExecutor extends AbstractScanExecutor {
ByteArrayWrapper key = command.getKey();
@SuppressWarnings("unchecked")
- Region<ByteArrayWrapper, ByteArrayWrapper> keyRegion = (Region<ByteArrayWrapper, ByteArrayWrapper>) context.getRegionCache().getRegion(key);
+ Region<ByteArrayWrapper, ByteArrayWrapper> keyRegion = (Region<ByteArrayWrapper, ByteArrayWrapper>) context.getRegionProvider().getRegion(key);
checkDataType(key, RedisDataType.REDIS_HASH, context);
if (keyRegion == null) {
command.setResponse(Coder.getScanResponse(context.getByteBufAllocator(), new ArrayList<String>()));
@@ -100,7 +101,7 @@ public class HScanExecutor extends AbstractScanExecutor {
return;
}
- List<Object> returnList = getIteration(keyRegion.entrySet(), matchPattern, count, cursor);
+ List<Object> returnList = getIteration(new HashSet(keyRegion.entrySet()), matchPattern, count, cursor);
command.setResponse(Coder.getScanResponse(context.getByteBufAllocator(), returnList));
}
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/1a6a0ef5/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/hash/HValsExecutor.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/hash/HValsExecutor.java b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/hash/HValsExecutor.java
index a17b054..8d5edaf 100755
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/hash/HValsExecutor.java
+++ b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/hash/HValsExecutor.java
@@ -1,15 +1,16 @@
package com.gemstone.gemfire.internal.redis.executor.hash;
+import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import com.gemstone.gemfire.cache.Region;
import com.gemstone.gemfire.internal.redis.ByteArrayWrapper;
+import com.gemstone.gemfire.internal.redis.Coder;
import com.gemstone.gemfire.internal.redis.Command;
import com.gemstone.gemfire.internal.redis.ExecutionHandlerContext;
-import com.gemstone.gemfire.internal.redis.RedisDataType;
-import com.gemstone.gemfire.internal.redis.Coder;
import com.gemstone.gemfire.internal.redis.RedisConstants.ArityDef;
+import com.gemstone.gemfire.internal.redis.RedisDataType;
public class HValsExecutor extends HashExecutor {
@@ -31,8 +32,8 @@ public class HValsExecutor extends HashExecutor {
command.setResponse(Coder.getEmptyArrayResponse(context.getByteBufAllocator()));
return;
}
-
- Collection<ByteArrayWrapper> vals = keyRegion.values();
+
+ Collection<ByteArrayWrapper> vals = new ArrayList(keyRegion.values());
if (vals.isEmpty()) {
command.setResponse(Coder.getEmptyArrayResponse(context.getByteBufAllocator()));
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/1a6a0ef5/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/hash/HashExecutor.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/hash/HashExecutor.java b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/hash/HashExecutor.java
index 0abe42f..94b5115 100755
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/hash/HashExecutor.java
+++ b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/hash/HashExecutor.java
@@ -12,12 +12,12 @@ public abstract class HashExecutor extends AbstractExecutor {
@SuppressWarnings("unchecked")
protected Region<ByteArrayWrapper, ByteArrayWrapper> getOrCreateRegion(ExecutionHandlerContext context, ByteArrayWrapper key, RedisDataType type) {
- return (Region<ByteArrayWrapper, ByteArrayWrapper>) context.getRegionCache().getOrCreateRegion(key, type, context);
+ return (Region<ByteArrayWrapper, ByteArrayWrapper>) context.getRegionProvider().getOrCreateRegion(key, type, context);
}
@SuppressWarnings("unchecked")
protected Region<ByteArrayWrapper, ByteArrayWrapper> getRegion(ExecutionHandlerContext context, ByteArrayWrapper key) {
- return (Region<ByteArrayWrapper, ByteArrayWrapper>) context.getRegionCache().getRegion(key);
+ return (Region<ByteArrayWrapper, ByteArrayWrapper>) context.getRegionProvider().getRegion(key);
}
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/1a6a0ef5/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/hll/HllExecutor.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/hll/HllExecutor.java b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/hll/HllExecutor.java
index 1744f37..2f2a963 100755
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/hll/HllExecutor.java
+++ b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/hll/HllExecutor.java
@@ -13,7 +13,7 @@ public abstract class HllExecutor extends AbstractExecutor {
public static final Integer DEFAULT_HLL_SPARSE = 32;
protected final void checkAndSetDataType(ByteArrayWrapper key, ExecutionHandlerContext context) {
- Object oldVal = context.getRegionCache().metaPutIfAbsent(key, RedisDataType.REDIS_HLL);
+ Object oldVal = context.getRegionProvider().metaPutIfAbsent(key, RedisDataType.REDIS_HLL);
if (oldVal == RedisDataType.REDIS_PROTECTED)
throw new RedisDataTypeMismatchException("The key name \"" + key + "\" is protected");
if (oldVal != null && oldVal != RedisDataType.REDIS_HLL)
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/1a6a0ef5/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/hll/PFAddExecutor.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/hll/PFAddExecutor.java b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/hll/PFAddExecutor.java
index 6177a0a..1fbe9e1 100755
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/hll/PFAddExecutor.java
+++ b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/hll/PFAddExecutor.java
@@ -22,7 +22,7 @@ public class PFAddExecutor extends HllExecutor {
ByteArrayWrapper key = command.getKey();
checkAndSetDataType(key, context);
- Region<ByteArrayWrapper, HyperLogLogPlus> keyRegion = context.getRegionCache().gethLLRegion();
+ Region<ByteArrayWrapper, HyperLogLogPlus> keyRegion = context.getRegionProvider().gethLLRegion();
HyperLogLogPlus hll = keyRegion.get(key);
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/1a6a0ef5/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/hll/PFCountExecutor.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/hll/PFCountExecutor.java b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/hll/PFCountExecutor.java
index d056907..bdced51 100755
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/hll/PFCountExecutor.java
+++ b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/hll/PFCountExecutor.java
@@ -22,7 +22,7 @@ public class PFCountExecutor extends HllExecutor {
return;
}
- Region<ByteArrayWrapper, HyperLogLogPlus> keyRegion = context.getRegionCache().gethLLRegion();
+ Region<ByteArrayWrapper, HyperLogLogPlus> keyRegion = context.getRegionProvider().gethLLRegion();
List<HyperLogLogPlus> hlls = new ArrayList<HyperLogLogPlus>();
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/1a6a0ef5/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/hll/PFMergeExecutor.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/hll/PFMergeExecutor.java b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/hll/PFMergeExecutor.java
index cc1ccf7..f646791 100755
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/hll/PFMergeExecutor.java
+++ b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/hll/PFMergeExecutor.java
@@ -24,7 +24,7 @@ public class PFMergeExecutor extends HllExecutor {
ByteArrayWrapper destKey = command.getKey();
checkAndSetDataType(destKey, context);
- Region<ByteArrayWrapper, HyperLogLogPlus> keyRegion = context.getRegionCache().gethLLRegion();
+ Region<ByteArrayWrapper, HyperLogLogPlus> keyRegion = context.getRegionProvider().gethLLRegion();
HyperLogLogPlus mergedHLL = keyRegion.get(destKey);
if (mergedHLL == null)
mergedHLL = new HyperLogLogPlus(DEFAULT_HLL_DENSE);
@@ -38,7 +38,7 @@ public class PFMergeExecutor extends HllExecutor {
hlls.add(h);
}
if (hlls.isEmpty()) {
- context.getRegionCache().removeKey(destKey);
+ context.getRegionProvider().removeKey(destKey);
command.setResponse(Coder.getSimpleStringResponse(context.getByteBufAllocator(), "OK"));
return;
}
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/1a6a0ef5/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/list/LIndexExecutor.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/list/LIndexExecutor.java b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/list/LIndexExecutor.java
index c2064a1..997f1af 100755
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/list/LIndexExecutor.java
+++ b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/list/LIndexExecutor.java
@@ -38,7 +38,7 @@ public class LIndexExecutor extends ListExecutor {
return;
}
- int listSize = keyRegion.size();
+ int listSize = keyRegion.size() - LIST_EMPTY_SIZE;
Integer redisIndex;
@@ -90,7 +90,7 @@ public class LIndexExecutor extends ListExecutor {
Query query = getQuery(key, ListQuery.LINDEX, context);
- Object[] params = {new Integer(index + 1)};
+ Object[] params = {Integer.valueOf(index + 1)};
SelectResults<?> results = (SelectResults<?>) query.execute(params);
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/1a6a0ef5/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/list/LLenExecutor.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/list/LLenExecutor.java b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/list/LLenExecutor.java
index 224cf60..63f0e1a 100755
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/list/LLenExecutor.java
+++ b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/list/LLenExecutor.java
@@ -35,7 +35,7 @@ public class LLenExecutor extends ListExecutor {
return;
}
- listSize = keyRegion.size();
+ listSize = keyRegion.size() - LIST_EMPTY_SIZE;
command.setResponse(Coder.getIntegerResponse(context.getByteBufAllocator(), listSize));
}
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/1a6a0ef5/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/list/LRangeExecutor.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/list/LRangeExecutor.java b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/list/LRangeExecutor.java
index a0b9901..84b5193 100755
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/list/LRangeExecutor.java
+++ b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/list/LRangeExecutor.java
@@ -43,7 +43,7 @@ public class LRangeExecutor extends ListExecutor {
return;
}
- int listSize = keyRegion.size();
+ int listSize = keyRegion.size() - LIST_EMPTY_SIZE;
if (listSize == 0) {
command.setResponse(Coder.getEmptyArrayResponse(context.getByteBufAllocator()));
return;
@@ -70,7 +70,7 @@ public class LRangeExecutor extends ListExecutor {
List<Struct> range;
try {
- range = getRange(context, key, redisStart, redisStop);
+ range = getRange(context, key, redisStart, redisStop, keyRegion);
} catch (Exception e) {
throw new RuntimeException(e);
}
@@ -81,14 +81,12 @@ public class LRangeExecutor extends ListExecutor {
command.setResponse(Coder.getBulkStringArrayResponseOfValues(context.getByteBufAllocator(), range));
}
- private List<Struct> getRange(ExecutionHandlerContext context, ByteArrayWrapper key, int start, int stop) throws Exception {
+ private List<Struct> getRange(ExecutionHandlerContext context, ByteArrayWrapper key, int start, int stop, Region r) throws Exception {
Query query = getQuery(key, ListQuery.LRANGE, context);
- Object[] params = {new Integer(stop + 1)};
-
+ Object[] params = {Integer.valueOf(stop + 1)};
SelectResults<Struct> results = (SelectResults<Struct>) query.execute(params);
-
int size = results.size();
if (results == null || size <= start) {
return null;
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/1a6a0ef5/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/list/LRemExecutor.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/list/LRemExecutor.java b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/list/LRemExecutor.java
index 58daba3..8a50b4f 100755
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/list/LRemExecutor.java
+++ b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/list/LRemExecutor.java
@@ -79,10 +79,10 @@ public class LRemExecutor extends ListExecutor {
Query query;
if (count > 0) {
query = getQuery(key, ListQuery.LREMG, context);
- params = new Object[]{value, new Integer(count)};
+ params = new Object[]{value, Integer.valueOf(count)};
} else if (count < 0) {
query = getQuery(key, ListQuery.LREML, context);
- params = new Object[]{value, new Integer(-count)};
+ params = new Object[]{value, Integer.valueOf(-count)};
} else {
query = getQuery(key, ListQuery.LREME, context);
params = new Object[]{value};
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/1a6a0ef5/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/list/LSetExecutor.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/list/LSetExecutor.java b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/list/LSetExecutor.java
index ae09878..0668f02 100755
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/list/LSetExecutor.java
+++ b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/list/LSetExecutor.java
@@ -52,7 +52,7 @@ public class LSetExecutor extends ListExecutor {
return;
}
- int listSize = keyRegion.size();
+ int listSize = keyRegion.size() - LIST_EMPTY_SIZE;
if (index < 0)
index += listSize;
if (index < 0 || index > listSize) {
@@ -79,7 +79,7 @@ public class LSetExecutor extends ListExecutor {
private Integer getIndexKey(ExecutionHandlerContext context, ByteArrayWrapper key, int index) throws Exception {
Query query = getQuery(key, ListQuery.LSET, context);
- Object[] params = {new Integer(index + 1)};
+ Object[] params = {Integer.valueOf(index + 1)};
SelectResults<Integer> results = (SelectResults<Integer>) query.execute(params);
int size = results.size();
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/1a6a0ef5/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/list/LTrimExecutor.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/list/LTrimExecutor.java b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/list/LTrimExecutor.java
index cb3e9a4..11ae338 100755
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/list/LTrimExecutor.java
+++ b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/list/LTrimExecutor.java
@@ -40,16 +40,16 @@ public class LTrimExecutor extends ListExecutor {
checkDataType(key, RedisDataType.REDIS_LIST, context);
- Region<Integer, ByteArrayWrapper> keyRegion = getRegion(context, key);
+ Region keyRegion = getRegion(context, key);
if (keyRegion == null) {
command.setResponse(Coder.getErrorResponse(context.getByteBufAllocator(), ERROR_KEY_NOT_EXISTS));
return;
}
- int listSize = keyRegion.size();
+ int listSize = keyRegion.size() - LIST_EMPTY_SIZE;
if (listSize == 0) {
- command.setResponse(Coder.getEmptyArrayResponse(context.getByteBufAllocator()));
+ command.setResponse(Coder.getSimpleStringResponse(context.getByteBufAllocator(), SUCCESS));
return;
}
@@ -70,37 +70,35 @@ public class LTrimExecutor extends ListExecutor {
command.setResponse(Coder.getSimpleStringResponse(context.getByteBufAllocator(), SUCCESS));
return;
} else if (redisStart == 0 && redisStop < redisStart) {
- context.getRegionCache().removeKey(key, RedisDataType.REDIS_LIST);
+ context.getRegionProvider().removeKey(key, RedisDataType.REDIS_LIST);
command.setResponse(Coder.getSimpleStringResponse(context.getByteBufAllocator(), SUCCESS));
return;
}
List<Integer> keepList;
try {
- keepList = getRange(context, key, redisStart, redisStop);
+ keepList = getRange(context, key, redisStart, redisStop, keyRegion);
} catch (Exception e) {
throw new RuntimeException(e);
}
- for (Integer keyElement: keyRegion.keySet()) {
- if (!keepList.contains(keyElement))
+ for (Object keyElement: keyRegion.keySet()) {
+ if (!keepList.contains(keyElement) && keyElement instanceof Integer)
keyRegion.remove(keyElement);
}
// Reset indexes in meta data region
- Region<String, Integer> meta = context.getRegionCache().getListsMetaRegion();
- meta.put(key + "head", keepList.get(0));
- meta.put(key + "tail", keepList.get(keepList.size() - 1));
+ keyRegion.put("head", keepList.get(0));
+ keyRegion.put("tail", keepList.get(keepList.size() - 1));
command.setResponse(Coder.getSimpleStringResponse(context.getByteBufAllocator(), SUCCESS));
}
- private List<Integer> getRange(ExecutionHandlerContext context, ByteArrayWrapper key, int start, int stop) throws Exception {
+ private List<Integer> getRange(ExecutionHandlerContext context, ByteArrayWrapper key, int start, int stop, Region r) throws Exception {
Query query = getQuery(key, ListQuery.LTRIM, context);
- Object[] params = {new Integer(stop + 1)};
-
+ Object[] params = {Integer.valueOf(stop + 1)};
+
SelectResults<Integer> results = (SelectResults<Integer>) query.execute(params);
-
if (results == null || results.size() <= start) {
return null;
}
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/1a6a0ef5/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/list/ListExecutor.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/list/ListExecutor.java b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/list/ListExecutor.java
index 5b8e0cc..ebb36a1 100755
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/list/ListExecutor.java
+++ b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/list/ListExecutor.java
@@ -3,6 +3,7 @@ package com.gemstone.gemfire.internal.redis.executor.list;
import java.util.List;
import com.gemstone.gemfire.cache.Region;
+import com.gemstone.gemfire.cache.RegionDestroyedException;
import com.gemstone.gemfire.cache.query.QueryService;
import com.gemstone.gemfire.internal.cache.GemFireCacheImpl;
import com.gemstone.gemfire.internal.redis.ByteArrayWrapper;
@@ -13,6 +14,8 @@ import com.gemstone.gemfire.internal.redis.executor.AbstractExecutor;
public abstract class ListExecutor extends AbstractExecutor {
+ protected static final int LIST_EMPTY_SIZE = 2;
+
protected static enum ListDirection {LEFT, RIGHT};
protected final static QueryService getQueryService() {
@@ -22,12 +25,12 @@ public abstract class ListExecutor extends AbstractExecutor {
@SuppressWarnings("unchecked")
@Override
protected Region<Integer, ByteArrayWrapper> getOrCreateRegion(ExecutionHandlerContext context, ByteArrayWrapper key, RedisDataType type) {
- return (Region<Integer, ByteArrayWrapper>) context.getRegionCache().getOrCreateRegion(key, type, context);
+ return (Region<Integer, ByteArrayWrapper>) context.getRegionProvider().getOrCreateRegion(key, type, context);
}
@SuppressWarnings("unchecked")
protected Region<Integer, ByteArrayWrapper> getRegion(ExecutionHandlerContext context, ByteArrayWrapper key) {
- return (Region<Integer, ByteArrayWrapper>) context.getRegionCache().getRegion(key);
+ return (Region<Integer, ByteArrayWrapper>) context.getRegionProvider().getRegion(key);
}
/**
@@ -45,14 +48,12 @@ public abstract class ListExecutor extends AbstractExecutor {
* @param context Context of this push
*/
protected void pushElements(ByteArrayWrapper key, List<byte[]> commandElems, int startIndex, int endIndex,
- Region<Integer, ByteArrayWrapper> keyRegion, ListDirection pushType, ExecutionHandlerContext context) {
- Region<String, Integer> meta = context.getRegionCache().getListsMetaRegion();
-
- String indexKey = pushType == ListDirection.LEFT ? key + "head" : key + "tail";
- String oppositeKey = pushType == ListDirection.RIGHT ? key + "head" : key + "tail";
- Integer index = meta.get(indexKey);
- Integer opp = meta.get(oppositeKey);
+ Region keyRegion, ListDirection pushType, ExecutionHandlerContext context) {
+ String indexKey = pushType == ListDirection.LEFT ? "head" : "tail";
+ String oppositeKey = pushType == ListDirection.RIGHT ? "head" : "tail";
+ Integer index = (Integer) keyRegion.get(indexKey);
+ Integer opp = (Integer) keyRegion.get(oppositeKey);
if (index != opp)
index += pushType == ListDirection.LEFT ? -1 : 1; // Subtract index if left push, add if right push
@@ -76,8 +77,9 @@ public abstract class ListExecutor extends AbstractExecutor {
Object oldValue;
do {
oldValue = keyRegion.putIfAbsent(index, wrapper);
- if (oldValue != null)
+ if (oldValue != null) {
index += pushType == ListDirection.LEFT ? -1 : 1; // Subtract index if left push, add if right push
+ }
} while (oldValue != null);
/**
@@ -119,9 +121,9 @@ public abstract class ListExecutor extends AbstractExecutor {
boolean indexSet = false;
do {
- Integer existingIndex = meta.get(indexKey);
+ Integer existingIndex = (Integer) keyRegion.get(indexKey);
if ((pushType == ListDirection.RIGHT && existingIndex < index) || (pushType == ListDirection.LEFT && existingIndex > index))
- indexSet = meta.replace(indexKey, existingIndex, index);
+ indexSet = keyRegion.replace(indexKey, existingIndex, index);
else
break;
} while (!indexSet);
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/1a6a0ef5/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/list/PopExecutor.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/list/PopExecutor.java b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/list/PopExecutor.java
index af3f8b0..e501de0 100755
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/list/PopExecutor.java
+++ b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/list/PopExecutor.java
@@ -3,6 +3,7 @@ package com.gemstone.gemfire.internal.redis.executor.list;
import java.util.List;
import com.gemstone.gemfire.cache.Region;
+import com.gemstone.gemfire.cache.RegionDestroyedException;
import com.gemstone.gemfire.internal.redis.ByteArrayWrapper;
import com.gemstone.gemfire.internal.redis.Coder;
import com.gemstone.gemfire.internal.redis.Command;
@@ -24,16 +25,15 @@ public abstract class PopExecutor extends ListExecutor implements Extendable {
ByteArrayWrapper key = command.getKey();
checkDataType(key, RedisDataType.REDIS_LIST, context);
- Region<Integer, ByteArrayWrapper> keyRegion = getRegion(context, key);
- Region<String, Integer> meta = context.getRegionCache().getListsMetaRegion();
+ Region keyRegion = getRegion(context, key);
- if (keyRegion == null || keyRegion.size() == 0) {
+ if (keyRegion == null || keyRegion.size() == LIST_EMPTY_SIZE) {
command.setResponse(Coder.getNilResponse(context.getByteBufAllocator()));
return;
}
- String indexKey = popType() == ListDirection.LEFT ? key + "head" : key + "tail";
- String oppositeKey = popType() == ListDirection.RIGHT ? key + "head" : key + "tail";
+ String indexKey = popType() == ListDirection.LEFT ? "head" : "tail";
+ String oppositeKey = popType() == ListDirection.RIGHT ? "head" : "tail";
Integer index = 0;
int originalIndex = index;
int incr = popType() == ListDirection.LEFT ? 1 : -1;
@@ -49,10 +49,11 @@ public abstract class PopExecutor extends ListExecutor implements Extendable {
boolean indexChanged = false;
do {
- index = meta.get(indexKey);
- if (index == meta.get(oppositeKey))
+ index = (Integer) keyRegion.get(indexKey);
+ Integer opp = (Integer) keyRegion.get(oppositeKey);
+ if (index.equals(opp))
break;
- indexChanged = meta.replace(indexKey, index, index + incr);
+ indexChanged = keyRegion.replace(indexKey, index, index + incr);
} while(!indexChanged);
/**
@@ -67,7 +68,7 @@ public abstract class PopExecutor extends ListExecutor implements Extendable {
boolean removed = false;
int i = 0;
do {
- valueWrapper = keyRegion.get(index);
+ valueWrapper = (ByteArrayWrapper) keyRegion.get(index);
if (valueWrapper != null)
removed = keyRegion.remove(index, valueWrapper);
@@ -116,12 +117,12 @@ public abstract class PopExecutor extends ListExecutor implements Extendable {
*/
index += incr;
- int metaIndex = meta.get(indexKey);
+ Integer metaIndex = (Integer) keyRegion.get(indexKey);
if (i < 1 && (popType() == ListDirection.LEFT && metaIndex < originalIndex ||
popType() == ListDirection.RIGHT && metaIndex > originalIndex))
index = metaIndex;
i++;
- } while (!removed && keyRegion.size() != 0);
+ } while (!removed && keyRegion.size() != LIST_EMPTY_SIZE);
if (valueWrapper != null)
command.setResponse(Coder.getBulkStringResponse(context.getByteBufAllocator(), valueWrapper.toBytes()));
else
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/1a6a0ef5/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/list/PushExecutor.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/list/PushExecutor.java b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/list/PushExecutor.java
index 4414e0a..fdc7208 100755
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/list/PushExecutor.java
+++ b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/list/PushExecutor.java
@@ -29,7 +29,7 @@ public abstract class PushExecutor extends PushXExecutor implements Extendable {
Region<Integer, ByteArrayWrapper> keyRegion = getOrCreateRegion(context, key, RedisDataType.REDIS_LIST);
pushElements(key, commandElems, START_VALUES_INDEX, commandElems.size(), keyRegion, pushType(), context);
- int listSize = keyRegion.size();
+ int listSize = keyRegion.size() - LIST_EMPTY_SIZE;
command.setResponse(Coder.getIntegerResponse(context.getByteBufAllocator(), listSize));
}
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/1a6a0ef5/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/list/PushXExecutor.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/list/PushXExecutor.java b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/list/PushXExecutor.java
index fbbad1e..ac89522 100755
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/list/PushXExecutor.java
+++ b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/list/PushXExecutor.java
@@ -33,7 +33,7 @@ public abstract class PushXExecutor extends ListExecutor implements Extendable {
checkDataType(key, RedisDataType.REDIS_LIST, context);
pushElements(key, commandElems, 2, 3, keyRegion, pushType(), context);
- int listSize = keyRegion.size();
+ int listSize = keyRegion.size() - LIST_EMPTY_SIZE;
command.setResponse(Coder.getIntegerResponse(context.getByteBufAllocator(), listSize));
}
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/1a6a0ef5/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/org/apache/hadoop/fs/GlobPattern.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/org/apache/hadoop/fs/GlobPattern.java b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/org/apache/hadoop/fs/GlobPattern.java
deleted file mode 100644
index b6cd906..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/org/apache/hadoop/fs/GlobPattern.java
+++ /dev/null
@@ -1,164 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.gemstone.gemfire.internal.redis.executor.org.apache.hadoop.fs;
-
-import java.util.regex.Pattern;
-import java.util.regex.PatternSyntaxException;
-
-/**
- * A class for POSIX glob pattern with brace expansions.
- */
-public class GlobPattern {
- private static final char BACKSLASH = '\\';
- private Pattern compiled;
- private boolean hasWildcard = false;
-
- /**
- * Construct the glob pattern object with a glob pattern string
- * @param globPattern the glob pattern string
- */
- public GlobPattern(String globPattern) {
- set(globPattern);
- }
-
- /**
- * @return the compiled pattern
- */
- public Pattern compiled() {
- return compiled;
- }
-
- /**
- * Compile glob pattern string
- * @param globPattern the glob pattern
- * @return the pattern object
- */
- public static Pattern compile(String globPattern) {
- return new GlobPattern(globPattern).compiled();
- }
-
- /**
- * Match input against the compiled glob pattern
- * @param s input chars
- * @return true for successful matches
- */
- public boolean matches(CharSequence s) {
- return compiled.matcher(s).matches();
- }
-
- /**
- * Set and compile a glob pattern
- * @param glob the glob pattern string
- */
- public void set(String glob) {
- StringBuilder regex = new StringBuilder();
- int setOpen = 0;
- int curlyOpen = 0;
- int len = glob.length();
- hasWildcard = false;
-
- for (int i = 0; i < len; i++) {
- char c = glob.charAt(i);
-
- switch (c) {
- case BACKSLASH:
- if (++i >= len) {
- error("Missing escaped character", glob, i);
- }
- regex.append(c).append(glob.charAt(i));
- continue;
- case '.':
- case '$':
- case '(':
- case ')':
- case '|':
- case '+':
- // escape regex special chars that are not glob special chars
- regex.append(BACKSLASH);
- break;
- case '*':
- regex.append('.');
- hasWildcard = true;
- break;
- case '?':
- regex.append('.');
- hasWildcard = true;
- continue;
- case '{': // start of a group
- regex.append("(?:"); // non-capturing
- curlyOpen++;
- hasWildcard = true;
- continue;
- case ',':
- regex.append(curlyOpen > 0 ? '|' : c);
- continue;
- case '}':
- if (curlyOpen > 0) {
- // end of a group
- curlyOpen--;
- regex.append(")");
- continue;
- }
- break;
- case '[':
- if (setOpen > 0) {
- error("Unclosed character class", glob, i);
- }
- setOpen++;
- hasWildcard = true;
- break;
- case '^': // ^ inside [...] can be unescaped
- if (setOpen == 0) {
- regex.append(BACKSLASH);
- }
- break;
- case '!': // [! needs to be translated to [^
- regex.append(setOpen > 0 && '[' == glob.charAt(i - 1) ? '^' : '!');
- continue;
- case ']':
- // Many set errors like [][] could not be easily detected here,
- // as []], []-] and [-] are all valid POSIX glob and java regex.
- // We'll just let the regex compiler do the real work.
- setOpen = 0;
- break;
- default:
- }
- regex.append(c);
- }
-
- if (setOpen > 0) {
- error("Unclosed character class", glob, len);
- }
- if (curlyOpen > 0) {
- error("Unclosed group", glob, len);
- }
- compiled = Pattern.compile(regex.toString());
- }
-
- /**
- * @return true if this is a wildcard pattern (with special chars)
- */
- public boolean hasWildcard() {
- return hasWildcard;
- }
-
- private static void error(String message, String pattern, int pos) {
- throw new PatternSyntaxException(message, pattern, pos);
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/1a6a0ef5/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/set/SAddExecutor.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/set/SAddExecutor.java b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/set/SAddExecutor.java
index aa4a5f2..fd33104 100755
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/set/SAddExecutor.java
+++ b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/set/SAddExecutor.java
@@ -25,7 +25,7 @@ public class SAddExecutor extends SetExecutor {
ByteArrayWrapper key = command.getKey();
@SuppressWarnings("unchecked")
- Region<ByteArrayWrapper, Boolean> keyRegion = (Region<ByteArrayWrapper, Boolean>) context.getRegionCache().getOrCreateRegion(key, RedisDataType.REDIS_SET, context);
+ Region<ByteArrayWrapper, Boolean> keyRegion = (Region<ByteArrayWrapper, Boolean>) context.getRegionProvider().getOrCreateRegion(key, RedisDataType.REDIS_SET, context);
if (commandElems.size() >= 4) {
Map<ByteArrayWrapper, Boolean> entries = new HashMap<ByteArrayWrapper, Boolean>();
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/1a6a0ef5/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/set/SCardExecutor.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/set/SCardExecutor.java b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/set/SCardExecutor.java
index 4677565..5b8d842 100755
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/set/SCardExecutor.java
+++ b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/set/SCardExecutor.java
@@ -26,7 +26,7 @@ public class SCardExecutor extends SetExecutor {
ByteArrayWrapper key = command.getKey();
checkDataType(key, RedisDataType.REDIS_SET, context);
- Region<ByteArrayWrapper, Boolean> keyRegion = (Region<ByteArrayWrapper, Boolean>) context.getRegionCache().getRegion(key);
+ Region<ByteArrayWrapper, Boolean> keyRegion = (Region<ByteArrayWrapper, Boolean>) context.getRegionProvider().getRegion(key);
if (keyRegion == null) {
command.setResponse(Coder.getIntegerResponse(context.getByteBufAllocator(), NOT_EXISTS));
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/1a6a0ef5/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/set/SIsMemberExecutor.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/set/SIsMemberExecutor.java b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/set/SIsMemberExecutor.java
index 355f70f..33de3aa 100755
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/set/SIsMemberExecutor.java
+++ b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/set/SIsMemberExecutor.java
@@ -30,7 +30,7 @@ public class SIsMemberExecutor extends SetExecutor {
checkDataType(key, RedisDataType.REDIS_SET, context);
@SuppressWarnings("unchecked")
- Region<ByteArrayWrapper, Boolean> keyRegion = (Region<ByteArrayWrapper, Boolean>) context.getRegionCache().getRegion(key);
+ Region<ByteArrayWrapper, Boolean> keyRegion = (Region<ByteArrayWrapper, Boolean>) context.getRegionProvider().getRegion(key);
if (keyRegion == null) {
command.setResponse(Coder.getIntegerResponse(context.getByteBufAllocator(), NOT_EXISTS));
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/1a6a0ef5/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/set/SMembersExecutor.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/set/SMembersExecutor.java b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/set/SMembersExecutor.java
index bc68033..9536fa5 100755
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/set/SMembersExecutor.java
+++ b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/set/SMembersExecutor.java
@@ -1,15 +1,16 @@
package com.gemstone.gemfire.internal.redis.executor.set;
+import java.util.HashSet;
import java.util.List;
import java.util.Set;
import com.gemstone.gemfire.cache.Region;
import com.gemstone.gemfire.internal.redis.ByteArrayWrapper;
+import com.gemstone.gemfire.internal.redis.Coder;
import com.gemstone.gemfire.internal.redis.Command;
import com.gemstone.gemfire.internal.redis.ExecutionHandlerContext;
import com.gemstone.gemfire.internal.redis.RedisConstants.ArityDef;
import com.gemstone.gemfire.internal.redis.RedisDataType;
-import com.gemstone.gemfire.internal.redis.Coder;
public class SMembersExecutor extends SetExecutor {
@@ -25,14 +26,14 @@ public class SMembersExecutor extends SetExecutor {
ByteArrayWrapper key = command.getKey();
checkDataType(key, RedisDataType.REDIS_SET, context);
@SuppressWarnings("unchecked")
- Region<ByteArrayWrapper, Boolean> keyRegion = (Region<ByteArrayWrapper, Boolean>) context.getRegionCache().getRegion(key);
+ Region<ByteArrayWrapper, Boolean> keyRegion = (Region<ByteArrayWrapper, Boolean>) context.getRegionProvider().getRegion(key);
if (keyRegion == null) {
command.setResponse(Coder.getEmptyArrayResponse(context.getByteBufAllocator()));
return;
}
- Set<ByteArrayWrapper> members = keyRegion.keySet();
+ Set<ByteArrayWrapper> members = new HashSet(keyRegion.keySet()); // Emulate copy on read
command.setResponse(Coder.getBulkStringArrayResponse(context.getByteBufAllocator(), members));
}
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/1a6a0ef5/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/set/SMoveExecutor.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/set/SMoveExecutor.java b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/set/SMoveExecutor.java
index f7f5c86..a73bbd9 100755
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/set/SMoveExecutor.java
+++ b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/set/SMoveExecutor.java
@@ -32,7 +32,7 @@ public class SMoveExecutor extends SetExecutor {
checkDataType(source, RedisDataType.REDIS_SET, context);
checkDataType(destination, RedisDataType.REDIS_SET, context);
@SuppressWarnings("unchecked")
- Region<ByteArrayWrapper, Boolean> sourceRegion = (Region<ByteArrayWrapper, Boolean>) context.getRegionCache().getRegion(source);
+ Region<ByteArrayWrapper, Boolean> sourceRegion = (Region<ByteArrayWrapper, Boolean>) context.getRegionProvider().getRegion(source);
if (sourceRegion == null) {
command.setResponse(Coder.getIntegerResponse(context.getByteBufAllocator(), NOT_MOVED));
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/1a6a0ef5/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/set/SPopExecutor.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/set/SPopExecutor.java b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/set/SPopExecutor.java
index 73e59de..6461f34 100755
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/set/SPopExecutor.java
+++ b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/set/SPopExecutor.java
@@ -23,7 +23,7 @@ public class SPopExecutor extends SetExecutor {
ByteArrayWrapper key = command.getKey();
@SuppressWarnings("unchecked")
- Region<ByteArrayWrapper, Boolean> keyRegion = (Region<ByteArrayWrapper, Boolean>) context.getRegionCache().getRegion(key);
+ Region<ByteArrayWrapper, Boolean> keyRegion = (Region<ByteArrayWrapper, Boolean>) context.getRegionProvider().getRegion(key);
if (keyRegion == null || keyRegion.isEmpty()) {
command.setResponse(Coder.getNilResponse(context.getByteBufAllocator()));
return;
@@ -37,7 +37,7 @@ public class SPopExecutor extends SetExecutor {
keyRegion.remove(pop);
if (keyRegion.isEmpty()) {
- context.getRegionCache().removeKey(key);
+ context.getRegionProvider().removeKey(key);
}
command.setResponse(Coder.getBulkStringResponse(context.getByteBufAllocator(), pop.toBytes()));
}
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/1a6a0ef5/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/set/SRandMemberExecutor.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/set/SRandMemberExecutor.java b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/set/SRandMemberExecutor.java
index 5494b30..34954c5 100755
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/set/SRandMemberExecutor.java
+++ b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/set/SRandMemberExecutor.java
@@ -28,7 +28,7 @@ public class SRandMemberExecutor extends SetExecutor {
ByteArrayWrapper key = command.getKey();
@SuppressWarnings("unchecked")
- Region<ByteArrayWrapper, Boolean> keyRegion = (Region<ByteArrayWrapper, Boolean>) context.getRegionCache().getRegion(key);
+ Region<ByteArrayWrapper, Boolean> keyRegion = (Region<ByteArrayWrapper, Boolean>) context.getRegionProvider().getRegion(key);
int count = 1;
@@ -49,7 +49,7 @@ public class SRandMemberExecutor extends SetExecutor {
int members = keyRegion.size();
if (members <= count && count != 1) {
- command.setResponse(Coder.getBulkStringArrayResponse(context.getByteBufAllocator(), keyRegion.keySet()));
+ command.setResponse(Coder.getBulkStringArrayResponse(context.getByteBufAllocator(), new HashSet<ByteArrayWrapper>(keyRegion.keySet())));
return;
}
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/1a6a0ef5/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/set/SRemExecutor.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/set/SRemExecutor.java b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/set/SRemExecutor.java
index f85e095..482d83e 100755
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/set/SRemExecutor.java
+++ b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/set/SRemExecutor.java
@@ -26,7 +26,7 @@ public class SRemExecutor extends SetExecutor {
ByteArrayWrapper key = command.getKey();
checkDataType(key, RedisDataType.REDIS_SET, context);
@SuppressWarnings("unchecked")
- Region<ByteArrayWrapper, Boolean> keyRegion = (Region<ByteArrayWrapper, Boolean>) context.getRegionCache().getRegion(key);
+ Region<ByteArrayWrapper, Boolean> keyRegion = (Region<ByteArrayWrapper, Boolean>) context.getRegionProvider().getRegion(key);
if (keyRegion == null) {
command.setResponse(Coder.getIntegerResponse(context.getByteBufAllocator(), NONE_REMOVED));
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/1a6a0ef5/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/set/SScanExecutor.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/set/SScanExecutor.java b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/set/SScanExecutor.java
index 87605df..7c0133b 100755
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/set/SScanExecutor.java
+++ b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/set/SScanExecutor.java
@@ -30,7 +30,7 @@ public class SScanExecutor extends AbstractScanExecutor {
ByteArrayWrapper key = command.getKey();
checkDataType(key, RedisDataType.REDIS_SET, context);
@SuppressWarnings("unchecked")
- Region<ByteArrayWrapper, Boolean> keyRegion = (Region<ByteArrayWrapper, Boolean>) context.getRegionCache().getRegion(key);
+ Region<ByteArrayWrapper, Boolean> keyRegion = (Region<ByteArrayWrapper, Boolean>) context.getRegionProvider().getRegion(key);
if (keyRegion == null) {
command.setResponse(Coder.getScanResponse(context.getByteBufAllocator(), new ArrayList<String>()));
return;
@@ -96,7 +96,7 @@ public class SScanExecutor extends AbstractScanExecutor {
}
@SuppressWarnings("unchecked")
- List<ByteArrayWrapper> returnList = (List<ByteArrayWrapper>) getIteration(keyRegion.keySet(), matchPattern, count, cursor);
+ List<ByteArrayWrapper> returnList = (List<ByteArrayWrapper>) getIteration(new ArrayList(keyRegion.keySet()), matchPattern, count, cursor);
command.setResponse(Coder.getScanResponse(context.getByteBufAllocator(), returnList));
}
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/1a6a0ef5/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/set/SetOpExecutor.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/set/SetOpExecutor.java b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/set/SetOpExecutor.java
index f2cfd9d..7cd1932 100755
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/set/SetOpExecutor.java
+++ b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/set/SetOpExecutor.java
@@ -14,7 +14,7 @@ import com.gemstone.gemfire.internal.redis.Command;
import com.gemstone.gemfire.internal.redis.ExecutionHandlerContext;
import com.gemstone.gemfire.internal.redis.Extendable;
import com.gemstone.gemfire.internal.redis.RedisDataType;
-import com.gemstone.gemfire.internal.redis.RegionCache;
+import com.gemstone.gemfire.internal.redis.RegionProvider;
public abstract class SetOpExecutor extends SetExecutor implements Extendable {
@@ -27,12 +27,11 @@ public abstract class SetOpExecutor extends SetExecutor implements Extendable {
command.setResponse(Coder.getErrorResponse(context.getByteBufAllocator(), getArgsError()));
return;
}
- RegionCache rC = context.getRegionCache();
+ RegionProvider rC = context.getRegionProvider();
ByteArrayWrapper destination = null;
if (isStorage())
destination = command.getKey();
-
ByteArrayWrapper firstSetKey = new ByteArrayWrapper(commandElems.get(setsStartIndex++));
if (!isStorage())
checkDataType(firstSetKey, RedisDataType.REDIS_SET, context);
@@ -53,10 +52,8 @@ public abstract class SetOpExecutor extends SetExecutor implements Extendable {
}
if (setList.isEmpty()) {
if (isStorage()) {
- if (firstSet == null) {
command.setResponse(Coder.getIntegerResponse(context.getByteBufAllocator(), 0));
- context.getRegionCache().removeKey(destination);
- }
+ context.getRegionProvider().removeKey(destination);
} else {
if (firstSet == null)
command.setResponse(Coder.getNilResponse(context.getByteBufAllocator()));
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/1a6a0ef5/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/sortedset/SortedSetExecutor.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/sortedset/SortedSetExecutor.java b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/sortedset/SortedSetExecutor.java
index 7443019..f193727 100755
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/sortedset/SortedSetExecutor.java
+++ b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/sortedset/SortedSetExecutor.java
@@ -12,13 +12,13 @@ public abstract class SortedSetExecutor extends AbstractExecutor {
@Override
protected Region<ByteArrayWrapper, DoubleWrapper> getOrCreateRegion(ExecutionHandlerContext context, ByteArrayWrapper key, RedisDataType type) {
@SuppressWarnings("unchecked")
- Region<ByteArrayWrapper, DoubleWrapper> r = (Region<ByteArrayWrapper, DoubleWrapper>) context.getRegionCache().getOrCreateRegion(key, type, context);
+ Region<ByteArrayWrapper, DoubleWrapper> r = (Region<ByteArrayWrapper, DoubleWrapper>) context.getRegionProvider().getOrCreateRegion(key, type, context);
return r;
}
protected Region<ByteArrayWrapper, DoubleWrapper> getRegion(ExecutionHandlerContext context, ByteArrayWrapper key) {
@SuppressWarnings("unchecked")
- Region<ByteArrayWrapper, DoubleWrapper> r = (Region<ByteArrayWrapper, DoubleWrapper>) context.getRegionCache().getRegion(key);
+ Region<ByteArrayWrapper, DoubleWrapper> r = (Region<ByteArrayWrapper, DoubleWrapper>) context.getRegionProvider().getRegion(key);
return r;
}
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/1a6a0ef5/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/sortedset/ZRangeByLexExecutor.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/sortedset/ZRangeByLexExecutor.java b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/sortedset/ZRangeByLexExecutor.java
index 2e91ffb..e5bb73f 100755
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/sortedset/ZRangeByLexExecutor.java
+++ b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/sortedset/ZRangeByLexExecutor.java
@@ -163,9 +163,7 @@ public class ZRangeByLexExecutor extends SortedSetExecutor {
}
if (limit > 0)
params[params.length - 1] = (limit + offset);
-
SelectResults<ByteArrayWrapper> results = (SelectResults<ByteArrayWrapper>) query.execute(params);
-
List<ByteArrayWrapper> list = results.asList();
int size = list.size();
return list.subList(Math.min(size, offset), size);
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/1a6a0ef5/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/sortedset/ZRangeByScoreExecutor.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/sortedset/ZRangeByScoreExecutor.java b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/sortedset/ZRangeByScoreExecutor.java
index e554618..fc73713 100755
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/sortedset/ZRangeByScoreExecutor.java
+++ b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/sortedset/ZRangeByScoreExecutor.java
@@ -1,6 +1,7 @@
package com.gemstone.gemfire.internal.redis.executor.sortedset;
import java.util.Collection;
+import java.util.HashSet;
import java.util.List;
import com.gemstone.gemfire.cache.Region;
@@ -135,7 +136,7 @@ public class ZRangeByScoreExecutor extends SortedSetExecutor implements Extendab
if (start == Double.POSITIVE_INFINITY || stop == Double.NEGATIVE_INFINITY || start > stop || (start == stop && (!startInclusive || !stopInclusive)))
return null;
if (start == Double.NEGATIVE_INFINITY && stop == Double.POSITIVE_INFINITY)
- return keyRegion.entrySet();
+ return new HashSet(keyRegion.entrySet());
Query query;
Object[] params;
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/1a6a0ef5/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/sortedset/ZRemExecutor.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/sortedset/ZRemExecutor.java b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/sortedset/ZRemExecutor.java
index c119281..d5d7a75 100755
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/sortedset/ZRemExecutor.java
+++ b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/sortedset/ZRemExecutor.java
@@ -42,7 +42,7 @@ public class ZRemExecutor extends SortedSetExecutor {
numDeletedMembers++;
}
if (keyRegion.isEmpty())
- context.getRegionCache().removeKey(key);
+ context.getRegionProvider().removeKey(key);
command.setResponse(Coder.getIntegerResponse(context.getByteBufAllocator(), numDeletedMembers));
}
}
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/1a6a0ef5/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/sortedset/ZRemRangeByLexExecutor.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/sortedset/ZRemRangeByLexExecutor.java b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/sortedset/ZRemRangeByLexExecutor.java
index 6dc7f51..2b26100 100755
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/sortedset/ZRemRangeByLexExecutor.java
+++ b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/sortedset/ZRemRangeByLexExecutor.java
@@ -1,5 +1,6 @@
package com.gemstone.gemfire.internal.redis.executor.sortedset;
+import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
@@ -90,7 +91,7 @@ public class ZRemRangeByLexExecutor extends SortedSetExecutor {
private Collection<ByteArrayWrapper> getRange(ByteArrayWrapper key, Region<ByteArrayWrapper, DoubleWrapper> keyRegion, ExecutionHandlerContext context, ByteArrayWrapper start, ByteArrayWrapper stop, boolean startInclusive, boolean stopInclusive) throws Exception {
if (start.equals("-") && stop.equals("+"))
- return keyRegion.keySet();
+ return new ArrayList<ByteArrayWrapper>(keyRegion.keySet());
else if (start.equals("+") || stop.equals("-"))
return null;
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/1a6a0ef5/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/sortedset/ZRemRangeByRankExecutor.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/sortedset/ZRemRangeByRankExecutor.java b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/sortedset/ZRemRangeByRankExecutor.java
index 24a4ed2..34452e3 100755
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/sortedset/ZRemRangeByRankExecutor.java
+++ b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/redis/executor/sortedset/ZRemRangeByRankExecutor.java
@@ -69,7 +69,7 @@ public class ZRemRangeByRankExecutor extends SortedSetExecutor {
try {
if (startRank == 0 && stopRank == sSetSize- 1) {
numRemoved = keyRegion.size();
- context.getRegionCache().removeKey(key);
+ context.getRegionProvider().removeKey(key);
} else {
removeList = getRemoveKeys(context, key, startRank, stopRank);
}
@@ -89,7 +89,7 @@ public class ZRemRangeByRankExecutor extends SortedSetExecutor {
numRemoved++;
}
if (keyRegion.isEmpty())
- context.getRegionCache().removeKey(key);
+ context.getRegionProvider().removeKey(key);
}
command.setResponse(Coder.getIntegerResponse(context.getByteBufAllocator(), numRemoved));
}