diff --git a/src/main/java/org/redisson/client/protocol/decoder/KeyValueObjectDecoder.java b/src/main/java/org/redisson/client/protocol/decoder/KeyValueObjectDecoder.java index 614e9b8df..73f238c23 100644 --- a/src/main/java/org/redisson/client/protocol/decoder/KeyValueObjectDecoder.java +++ b/src/main/java/org/redisson/client/protocol/decoder/KeyValueObjectDecoder.java @@ -27,7 +27,7 @@ public class KeyValueObjectDecoder implements MultiDecoder { @Override public Object decode(ByteBuf buf, State state) { String status = buf.toString(CharsetUtil.UTF_8); - buf.skipBytes(2); + buf.skipBytes(1); return status; } diff --git a/src/test/java/org/redisson/RedissonBlockingQueueTest.java b/src/test/java/org/redisson/RedissonBlockingQueueTest.java index c3c61b024..0de00ba63 100644 --- a/src/test/java/org/redisson/RedissonBlockingQueueTest.java +++ b/src/test/java/org/redisson/RedissonBlockingQueueTest.java @@ -384,4 +384,35 @@ public class RedissonBlockingQueueTest extends BaseTest { } + + @Test + public void testSingleCharAsKeyName() { + String value = "Long Test Message;Long Test Message;Long Test Message;" + + "Long Test Message;Long Test Message;Long Test Message;Long " + + "Test Message;Long Test Message;Long Test Message;Long Test " + + "Message;Long Test Message;Long Test Message;Long Test Messa" + + "ge;Long Test Message;Long Test Message;Long Test Message;Lo" + + "ng Test Message;Long Test Message;Long Test Message;Long Te" + + "st Message;Long Test Message;Long Test Message;Long Test Me" + + "ssage;Long Test Message;Long Test Message;Long Test Message" + + ";Long Test Message;Long Test Message;Long Test Message;Long" + + " Test Message;Long Test Message;Long Test Message;Long Test" + + " Message;Long Test Message;Long Test Message;Long Test Mess" + + "age;"; + try { + for (int i = 0; i < 10; i++) { + System.out.println("Iteration: " + i); + RBlockingQueue q = redisson.getBlockingQueue(String.valueOf(i)); + q.add(value); + System.out.println("Message added to [" + i + "]"); + q.expire(1, TimeUnit.MINUTES); + System.out.println("Expiry set to [" + i + "]"); + String poll = q.poll(1, TimeUnit.SECONDS); + System.out.println("Message polled from [" + i + "]" + poll); + Assert.assertEquals(value, poll); + } + } catch (Exception e) { + Assert.fail(e.getLocalizedMessage()); + } + } }