diff --git a/src/main/java/redis/clients/util/SafeEncoder.java b/src/main/java/redis/clients/util/SafeEncoder.java index c657756..8e88c40 100644 --- a/src/main/java/redis/clients/util/SafeEncoder.java +++ b/src/main/java/redis/clients/util/SafeEncoder.java @@ -3,6 +3,7 @@ package redis.clients.util; import java.io.UnsupportedEncodingException; import redis.clients.jedis.Protocol; +import redis.clients.jedis.exceptions.JedisDataException; import redis.clients.jedis.exceptions.JedisException; /** @@ -12,6 +13,10 @@ import redis.clients.jedis.exceptions.JedisException; public class SafeEncoder { public static byte[] encode(final String str) { try { + if (str == null) { + throw new JedisDataException( + "value sent to redis cannot be null"); + } return str.getBytes(Protocol.CHARSET); } catch (UnsupportedEncodingException e) { throw new JedisException(e); diff --git a/src/test/java/redis/clients/jedis/tests/JedisTest.java b/src/test/java/redis/clients/jedis/tests/JedisTest.java index d1272d2..a34ef3d 100644 --- a/src/test/java/redis/clients/jedis/tests/JedisTest.java +++ b/src/test/java/redis/clients/jedis/tests/JedisTest.java @@ -9,6 +9,7 @@ import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisShardInfo; import redis.clients.jedis.Protocol; import redis.clients.jedis.exceptions.JedisConnectionException; +import redis.clients.jedis.exceptions.JedisDataException; import redis.clients.jedis.tests.commands.JedisCommandTestBase; import redis.clients.util.SafeEncoder; @@ -53,4 +54,9 @@ public class JedisTest extends JedisCommandTestBase { Thread.sleep(20000); jedis.hmget("foobar", "foo"); } + + @Test(expected = JedisDataException.class) + public void failWhenSendingNullValues() { + jedis.set("foo", null); + } } \ No newline at end of file