alphazero / jredis

Java Client and Connectors for Redis
http://code.google.com/p/jredis/
Apache License 2.0
315 stars 136 forks source link

ERR Protocol error: expected '$' got '*' on mset #64

Open jencompgeek opened 11 years ago

jencompgeek commented 11 years ago

Running the following test code produced the following error. The same problem occurs with msetnx.

@Test
public void testMSet() throws RedisException {
    ConnectionSpec connectionSpec = DefaultConnectionSpec.newSpec("localhost", 6379, 0, null);
    connectionSpec.setConnectionFlag(Connection.Flag.RELIABLE, false);
    JRedisClient jredis = new JRedisClient(connectionSpec);
    Map<byte[],byte[]> map = new HashMap<byte[],byte[]>();
    map.put("foo".getBytes(),"bar".getBytes());
    map.put("what".getBytes(), "up".getBytes());
    jredis.mset(map);
}

Error:

Exception on [MSET] => ERR Protocol error: expected '$', got '*'
at org.jredis.ri.alphazero.connection.SyncConnection.serviceRequest(SyncConnection.java:156)
at org.jredis.ri.alphazero.JRedisClient.serviceRequest(JRedisClient.java:151)
at org.jredis.ri.alphazero.JRedisSupport.mset(JRedisSupport.java:1140)
at org.jredis.ri.alphazero.JRedisSupport.mset(JRedisSupport.java:1150)
at org.springframework.data.redis.connection.jredis.JRedisTest.testMSet(JRedisTest.java:23)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
alphazero commented 11 years ago

Check the compatibility doc and for future reference include version # for redis and branch info for JRedis. Code in repo is tested before release.

On 2013-04-19 17:43, jencompgeek wrote:

Running the following test code produced the following error. The same problem occurs with msetnx.

@Test public void testMSet() throws RedisException { ConnectionSpec connectionSpec = DefaultConnectionSpec.newSpec("localhost", 6379, 0, null); connectionSpec.setConnectionFlag(Connection.Flag.RELIABLE, false); JRedisClient jredis = new JRedisClient(connectionSpec); Map<byte[],byte[]> map = new HashMap<byte[],byte[]>(); map.put("foo".getBytes(),"bar".getBytes()); map.put("what".getBytes(), "up".getBytes()); jredis.mset(map); }

Error:

Exception on [MSET] => ERR Protocol error: expected '$', got '*' at org.jredis.ri.alphazero.connection.SyncConnection.serviceRequest(SyncConnection.java:156) at org.jredis.ri.alphazero.JRedisClient.serviceRequest(JRedisClient.java:151) at org.jredis.ri.alphazero.JRedisSupport.mset(JRedisSupport.java:1140) at org.jredis.ri.alphazero.JRedisSupport.mset(JRedisSupport.java:1150) at org.springframework.data.redis.connection.jredis.JRedisTest.testMSet(JRedisTest.java:23) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)

Reply to this email directly or view it on GitHub [1].

Links:

[1] https://github.com/alphazero/jredis/issues/64

jencompgeek commented 11 years ago

Sorry about the missing info. The failure occurs against both Redis 2.6.13 and 2.4.18. I used jredis-core-api and jredis-core-ri jars built from master.