You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by an...@apache.org on 2016/11/16 10:58:17 UTC
[3/3] ignite git commit: IGNITE-3066 Review.
IGNITE-3066 Review.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/f1e6257c
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/f1e6257c
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/f1e6257c
Branch: refs/heads/master
Commit: f1e6257c5e179386bc29b767bd68b6b9a4e0669d
Parents: b8a2b8e
Author: Andrey Novikov <an...@apache.org>
Authored: Wed Nov 16 17:57:21 2016 +0700
Committer: Andrey Novikov <an...@apache.org>
Committed: Wed Nov 16 17:57:21 2016 +0700
----------------------------------------------------------------------
.../client/suite/IgniteClientTestSuite.java | 4 +++
.../tcp/redis/RedisProtocolSelfTest.java | 31 ++++++++++++++++----
.../GridRedisConnectionCommandHandler.java | 3 ++
.../redis/GridRedisRestCommandHandler.java | 3 +-
.../redis/key/GridRedisDelCommandHandler.java | 1 +
.../key/GridRedisExistsCommandHandler.java | 1 +
.../string/GridRedisAppendCommandHandler.java | 1 +
.../string/GridRedisGetRangeCommandHandler.java | 11 +++----
.../string/GridRedisIncrDecrCommandHandler.java | 3 ++
.../string/GridRedisMGetCommandHandler.java | 1 +
.../string/GridRedisSetCommandHandler.java | 3 +-
.../string/GridRedisSetRangeCommandHandler.java | 3 ++
.../string/GridRedisStrlenCommandHandler.java | 1 +
13 files changed, 52 insertions(+), 14 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/f1e6257c/modules/clients/src/test/java/org/apache/ignite/internal/client/suite/IgniteClientTestSuite.java
----------------------------------------------------------------------
diff --git a/modules/clients/src/test/java/org/apache/ignite/internal/client/suite/IgniteClientTestSuite.java b/modules/clients/src/test/java/org/apache/ignite/internal/client/suite/IgniteClientTestSuite.java
index cc8f9fa..932f9bb 100644
--- a/modules/clients/src/test/java/org/apache/ignite/internal/client/suite/IgniteClientTestSuite.java
+++ b/modules/clients/src/test/java/org/apache/ignite/internal/client/suite/IgniteClientTestSuite.java
@@ -57,6 +57,7 @@ import org.apache.ignite.internal.processors.rest.RestProcessorMultiStartSelfTes
import org.apache.ignite.internal.processors.rest.RestProcessorStartSelfTest;
import org.apache.ignite.internal.processors.rest.TaskCommandHandlerSelfTest;
import org.apache.ignite.internal.processors.rest.protocols.tcp.TcpRestParserSelfTest;
+import org.apache.ignite.internal.processors.rest.protocols.tcp.redis.RedisProtocolSelfTest;
import org.apache.ignite.testframework.IgniteTestSuite;
/**
@@ -87,6 +88,9 @@ public class IgniteClientTestSuite extends TestSuite {
// Test TCP rest processor with original memcache client.
suite.addTestSuite(ClientMemcachedProtocolSelfTest.class);
+ // Test TCP rest processor with original REDIS client.
+ suite.addTestSuite(RedisProtocolSelfTest.class);
+
suite.addTestSuite(RestProcessorStartSelfTest.class);
// Test cache flag conversion.
http://git-wip-us.apache.org/repos/asf/ignite/blob/f1e6257c/modules/clients/src/test/java/org/apache/ignite/internal/processors/rest/protocols/tcp/redis/RedisProtocolSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/clients/src/test/java/org/apache/ignite/internal/processors/rest/protocols/tcp/redis/RedisProtocolSelfTest.java b/modules/clients/src/test/java/org/apache/ignite/internal/processors/rest/protocols/tcp/redis/RedisProtocolSelfTest.java
index bd20b27..c059205 100644
--- a/modules/clients/src/test/java/org/apache/ignite/internal/processors/rest/protocols/tcp/redis/RedisProtocolSelfTest.java
+++ b/modules/clients/src/test/java/org/apache/ignite/internal/processors/rest/protocols/tcp/redis/RedisProtocolSelfTest.java
@@ -164,6 +164,7 @@ public class RedisProtocolSelfTest extends GridCommonAbstractTest {
Assert.assertNull(jedis.get("wrongKey"));
jcache().put("setDataTypeKey", new HashSet<String>(Arrays.asList("1", "2")));
+
try {
jedis.get("setDataTypeKey");
@@ -186,6 +187,7 @@ public class RedisProtocolSelfTest extends GridCommonAbstractTest {
Assert.assertNull(jedis.get("getSetNonExistingKey"));
jcache().put("setDataTypeKey", new HashSet<String>(Arrays.asList("1", "2")));
+
try {
jedis.getSet("setDataTypeKey", "0");
@@ -205,11 +207,12 @@ public class RedisProtocolSelfTest extends GridCommonAbstractTest {
jcache().put("getKey1", "getVal1");
jcache().put("getKey2", 0);
- List<String> result = jedis.mget("getKey1", "getKey2", "wrongKey");
- Assert.assertTrue(result.contains("getVal1"));
- Assert.assertTrue(result.contains("0"));
+ List<String> res = jedis.mget("getKey1", "getKey2", "wrongKey");
+
+ Assert.assertTrue(res.contains("getVal1"));
+ Assert.assertTrue(res.contains("0"));
- // not supported.
+// not supported.
// fail("Incompatible! getAll() does not return null values!");
// Assert.assertTrue(result.contains("nil"));
}
@@ -229,11 +232,13 @@ public class RedisProtocolSelfTest extends GridCommonAbstractTest {
// test options.
jedis.set("setKey1", "2", "nx");
jedis.set("setKey3", "3", "nx");
+
Assert.assertEquals("1", jcache().get("setKey1"));
Assert.assertEquals("3", jcache().get("setKey3"));
jedis.set("setKey1", "2", "xx");
jedis.set("setKey4", "4", "xx");
+
Assert.assertEquals("2", jcache().get("setKey1"));
Assert.assertNull(jcache().get("setKey4"));
}
@@ -260,11 +265,15 @@ public class RedisProtocolSelfTest extends GridCommonAbstractTest {
Assert.assertEquals(-1, (long)jedis.decr("newKeyDecr"));
jcache().put("incrKey1", 1L);
+
Assert.assertEquals(2L, (long)jedis.incr("incrKey1"));
+
jcache().put("decrKey1", 1L);
+
Assert.assertEquals(0L, (long)jedis.decr("decrKey1"));
jcache().put("nonInt", "abc");
+
try {
jedis.incr("nonInt");
@@ -303,8 +312,11 @@ public class RedisProtocolSelfTest extends GridCommonAbstractTest {
Assert.assertEquals(-2, (long)jedis.decrBy("newKeyDecr1", 2));
jcache().put("incrKey2", 1L);
+
Assert.assertEquals(3L, (long)jedis.incrBy("incrKey2", 2));
+
jcache().put("decrKey2", 2L);
+
Assert.assertEquals(0L, (long)jedis.decrBy("decrKey2", 2));
}
}
@@ -318,6 +330,7 @@ public class RedisProtocolSelfTest extends GridCommonAbstractTest {
Assert.assertEquals(12, (long)jedis.append("appendKey1", " World!"));
jcache().put("setDataTypeKey", new HashSet<String>(Arrays.asList("1", "2")));
+
try {
jedis.append("setDataTypeKey", "");
@@ -337,9 +350,11 @@ public class RedisProtocolSelfTest extends GridCommonAbstractTest {
Assert.assertEquals(0, (long)jedis.strlen("strlenKeyNonExisting"));
jcache().put("strlenKey", "abc");
+
Assert.assertEquals(3, (long)jedis.strlen("strlenKey"));
jcache().put("setDataTypeKey", new HashSet<String>(Arrays.asList("1", "2")));
+
try {
jedis.strlen("setDataTypeKey");
@@ -359,6 +374,7 @@ public class RedisProtocolSelfTest extends GridCommonAbstractTest {
Assert.assertEquals(0, (long)jedis.setrange("setRangeKey1", 0, ""));
jcache().put("setRangeKey2", "abc");
+
Assert.assertEquals(3, (long)jedis.setrange("setRangeKey2", 0, ""));
Assert.assertEquals(3, (long)jedis.setrange("setRangeKeyPadded", 2, "a"));
@@ -382,9 +398,11 @@ public class RedisProtocolSelfTest extends GridCommonAbstractTest {
}
jcache().put("setRangeKey3", "Hello World");
+
Assert.assertEquals(11, (long)jedis.setrange("setRangeKey3", 6, "Redis"));
- jcache().put("setDataTypeKey", new HashSet<String>(Arrays.asList("1", "2")));
+ jcache().put("setDataTypeKey", new HashSet<>(Arrays.asList("1", "2")));
+
try {
jedis.setrange("setDataTypeKey", 0, "Redis");
@@ -404,12 +422,14 @@ public class RedisProtocolSelfTest extends GridCommonAbstractTest {
Assert.assertEquals("", jedis.getrange("getRangeKeyNonExisting", 0, 0));
jcache().put("getRangeKey", "This is a string");
+
Assert.assertEquals("This", jedis.getrange("getRangeKey", 0, 3));
Assert.assertEquals("ing", jedis.getrange("getRangeKey", -3, -1));
Assert.assertEquals("This is a string", jedis.getrange("getRangeKey", 0, -1));
Assert.assertEquals("string", jedis.getrange("getRangeKey", 10, 100));
jcache().put("setDataTypeKey", new HashSet<String>(Arrays.asList("1", "2")));
+
try {
jedis.getrange("setDataTypeKey", 0, 1);
@@ -459,6 +479,7 @@ public class RedisProtocolSelfTest extends GridCommonAbstractTest {
put(i, i);
}
});
+
Assert.assertEquals(100, (long)jedis.dbSize());
}
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/f1e6257c/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/redis/GridRedisConnectionCommandHandler.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/redis/GridRedisConnectionCommandHandler.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/redis/GridRedisConnectionCommandHandler.java
index b8a042d..c322f84 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/redis/GridRedisConnectionCommandHandler.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/redis/GridRedisConnectionCommandHandler.java
@@ -55,14 +55,17 @@ public class GridRedisConnectionCommandHandler implements GridRedisCommandHandle
switch (msg.command()) {
case PING:
msg.setResponse(GridRedisProtocolParser.toSimpleString(PONG));
+
return new GridFinishedFuture<>(msg);
case QUIT:
msg.setResponse(GridRedisProtocolParser.oKString());
+
return new GridFinishedFuture<>(msg);
case ECHO:
msg.setResponse(GridRedisProtocolParser.toSimpleString(msg.key()));
+
return new GridFinishedFuture<>(msg);
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/f1e6257c/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/redis/GridRedisRestCommandHandler.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/redis/GridRedisRestCommandHandler.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/redis/GridRedisRestCommandHandler.java
index 696fea5..9c7a655 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/redis/GridRedisRestCommandHandler.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/redis/GridRedisRestCommandHandler.java
@@ -58,8 +58,7 @@ public abstract class GridRedisRestCommandHandler implements GridRedisCommandHan
try {
return hnd.handleAsync(asRestRequest(msg))
.chain(new CX1<IgniteInternalFuture<GridRestResponse>, GridRedisMessage>() {
- @Override
- public GridRedisMessage applyx(IgniteInternalFuture<GridRestResponse> f)
+ @Override public GridRedisMessage applyx(IgniteInternalFuture<GridRestResponse> f)
throws IgniteCheckedException {
GridRestResponse restRes = f.get();
http://git-wip-us.apache.org/repos/asf/ignite/blob/f1e6257c/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/redis/key/GridRedisDelCommandHandler.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/redis/key/GridRedisDelCommandHandler.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/redis/key/GridRedisDelCommandHandler.java
index 9447fe1..dc9af19 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/redis/key/GridRedisDelCommandHandler.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/redis/key/GridRedisDelCommandHandler.java
@@ -70,6 +70,7 @@ public class GridRedisDelCommandHandler extends GridRedisRestCommandHandler {
restReq.command(CACHE_REMOVE_ALL);
List<String> keys = msg.auxMKeys();
+
Map<Object, Object> mget = U.newHashMap(keys.size());
for (String key : keys)
http://git-wip-us.apache.org/repos/asf/ignite/blob/f1e6257c/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/redis/key/GridRedisExistsCommandHandler.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/redis/key/GridRedisExistsCommandHandler.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/redis/key/GridRedisExistsCommandHandler.java
index 7d0d457..26b3871 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/redis/key/GridRedisExistsCommandHandler.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/redis/key/GridRedisExistsCommandHandler.java
@@ -70,6 +70,7 @@ public class GridRedisExistsCommandHandler extends GridRedisRestCommandHandler {
restReq.command(CACHE_GET_ALL);
List<String> keys = msg.auxMKeys();
+
Map<Object, Object> mget = U.newHashMap(keys.size());
for (String key : keys)
http://git-wip-us.apache.org/repos/asf/ignite/blob/f1e6257c/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/redis/string/GridRedisAppendCommandHandler.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/redis/string/GridRedisAppendCommandHandler.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/redis/string/GridRedisAppendCommandHandler.java
index 60d25fd..7e27621 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/redis/string/GridRedisAppendCommandHandler.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/redis/string/GridRedisAppendCommandHandler.java
@@ -104,6 +104,7 @@ public class GridRedisAppendCommandHandler extends GridRedisRestCommandHandler {
if (restRes.getResponse() instanceof String) {
int resLen = ((String)restRes.getResponse()).length();
+
return GridRedisProtocolParser.toInteger(String.valueOf(resLen));
}
else
http://git-wip-us.apache.org/repos/asf/ignite/blob/f1e6257c/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/redis/string/GridRedisGetRangeCommandHandler.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/redis/string/GridRedisGetRangeCommandHandler.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/redis/string/GridRedisGetRangeCommandHandler.java
index 41b1eac..4478c19 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/redis/string/GridRedisGetRangeCommandHandler.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/redis/string/GridRedisGetRangeCommandHandler.java
@@ -84,19 +84,20 @@ public class GridRedisGetRangeCommandHandler extends GridRedisRestCommandHandler
if (restRes.getResponse() instanceof String) {
String res = String.valueOf(restRes.getResponse());
- int startOffset;
- int endOffset;
+ int startOff;
+ int endOff;
try {
- startOffset = boundedStartOffset(Integer.parseInt(params.get(START_OFFSET_POS)), res.length());
- endOffset = boundedEndOffset(Integer.parseInt(params.get(END_OFFSET_POS)), res.length());
+ startOff = boundedStartOffset(Integer.parseInt(params.get(START_OFFSET_POS)), res.length());
+ endOff = boundedEndOffset(Integer.parseInt(params.get(END_OFFSET_POS)), res.length());
}
catch (NumberFormatException e) {
U.error(log, "Erroneous offset", e);
+
return GridRedisProtocolParser.toGenericError("Offset is not an integer");
}
- return GridRedisProtocolParser.toBulkString(res.substring(startOffset, endOffset));
+ return GridRedisProtocolParser.toBulkString(res.substring(startOff, endOff));
}
else
return GridRedisProtocolParser.toTypeError("Operation against a key holding the wrong kind of value");
http://git-wip-us.apache.org/repos/asf/ignite/blob/f1e6257c/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/redis/string/GridRedisIncrDecrCommandHandler.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/redis/string/GridRedisIncrDecrCommandHandler.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/redis/string/GridRedisIncrDecrCommandHandler.java
index 219768b..382696d 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/redis/string/GridRedisIncrDecrCommandHandler.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/redis/string/GridRedisIncrDecrCommandHandler.java
@@ -108,12 +108,15 @@ public class GridRedisIncrDecrCommandHandler extends GridRedisRestCommandHandler
case INCR:
case INCRBY:
restReq.command(ATOMIC_INCREMENT);
+
break;
case DECR:
case DECRBY:
restReq.command(ATOMIC_DECREMENT);
+
break;
+
default:
assert false : "Unexpected command received";
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/f1e6257c/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/redis/string/GridRedisMGetCommandHandler.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/redis/string/GridRedisMGetCommandHandler.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/redis/string/GridRedisMGetCommandHandler.java
index e5406c6..87557d6 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/redis/string/GridRedisMGetCommandHandler.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/redis/string/GridRedisMGetCommandHandler.java
@@ -70,6 +70,7 @@ public class GridRedisMGetCommandHandler extends GridRedisRestCommandHandler {
restReq.command(CACHE_GET_ALL);
List<String> keys = msg.auxMKeys();
+
Map<Object, Object> mget = U.newHashMap(keys.size());
for (String key : keys)
http://git-wip-us.apache.org/repos/asf/ignite/blob/f1e6257c/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/redis/string/GridRedisSetCommandHandler.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/redis/string/GridRedisSetCommandHandler.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/redis/string/GridRedisSetCommandHandler.java
index 8eb0b3f..c33a8ca 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/redis/string/GridRedisSetCommandHandler.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/redis/string/GridRedisSetCommandHandler.java
@@ -79,7 +79,6 @@ public class GridRedisSetCommandHandler extends GridRedisRestCommandHandler {
restReq.value(msg.aux(VAL_POS));
if (msg.messageSize() >= 4) {
-
List<String> params = msg.aux();
// get rid of SET value.
@@ -90,7 +89,7 @@ public class GridRedisSetCommandHandler extends GridRedisRestCommandHandler {
else if (isXx(params))
restReq.command(CACHE_REPLACE);
- // TODO: IGNITE-4226, handle expiration options.
+ // TODO: IGNITE-4226: Need properly handle expiration parameter.
}
return restReq;
http://git-wip-us.apache.org/repos/asf/ignite/blob/f1e6257c/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/redis/string/GridRedisSetRangeCommandHandler.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/redis/string/GridRedisSetRangeCommandHandler.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/redis/string/GridRedisSetRangeCommandHandler.java
index dfd24a5..2cd931e 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/redis/string/GridRedisSetRangeCommandHandler.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/redis/string/GridRedisSetRangeCommandHandler.java
@@ -73,6 +73,7 @@ public class GridRedisSetRangeCommandHandler extends GridRedisRestCommandHandler
throw new GridRedisGenericException("Wrong number of arguments");
int off;
+
try {
off = Integer.parseInt(msg.aux(OFFSET_POS));
}
@@ -95,6 +96,7 @@ public class GridRedisSetRangeCommandHandler extends GridRedisRestCommandHandler
Object resp = hnd.handle(getReq).getResponse();
int totalLen = off + val.length();
+
if (off < 0 || totalLen > MAX_OFFSET)
throw new GridRedisGenericException("Offset is out of range");
@@ -106,6 +108,7 @@ public class GridRedisSetRangeCommandHandler extends GridRedisRestCommandHandler
if (resp == null) {
byte[] dst = new byte[totalLen];
+
System.arraycopy(val.getBytes(), 0, dst, off, val.length());
putReq.value(new String(dst));
http://git-wip-us.apache.org/repos/asf/ignite/blob/f1e6257c/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/redis/string/GridRedisStrlenCommandHandler.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/redis/string/GridRedisStrlenCommandHandler.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/redis/string/GridRedisStrlenCommandHandler.java
index b4a88c9..b13ae62 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/redis/string/GridRedisStrlenCommandHandler.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/redis/string/GridRedisStrlenCommandHandler.java
@@ -75,6 +75,7 @@ public class GridRedisStrlenCommandHandler extends GridRedisRestCommandHandler {
if (restRes.getResponse() instanceof String) {
int len = String.valueOf(restRes.getResponse()).length();
+
return GridRedisProtocolParser.toInteger(String.valueOf(len));
}
else