org.springframework.data.redis.RedisSystemException: Unknown SRP exception; nested exception is java.util.concurrent.ExecutionException: java.lang.ClassCastException: redis.reply.ErrorReply cannot be cast to redis.reply.MultiBulkReply

Spring JIRA | Jennifer Hickey | 4 years ago
  1. 0

    ClassCastException when exec returns an ErrorReply in Redis 2.6

    GitHub | 4 years ago | jencompgeek
    java.util.concurrent.ExecutionException: java.lang.ClassCastException: redis.reply.ErrorReply cannot be cast to redis.reply.MultiBulkReply
  2. 0

    This appears to be an SRP issue and should be filed with them. The following exception happens after attempting to execute a command with a syntax error in a transaction. As of Redis 2.6.5, exec() will now return an ErrorReply if any of the commands are syntactically incorrect. {code} org.springframework.data.redis.RedisSystemException: Unknown SRP exception; nested exception is java.util.concurrent.ExecutionException: java.lang.ClassCastException: redis.reply.ErrorReply cannot be cast to redis.reply.MultiBulkReply at org.springframework.data.redis.connection.srp.SrpConnection.convertSrpAccessException(SrpConnection.java:122) at org.springframework.data.redis.connection.srp.SrpConnection.exec(SrpConnection.java:439) at org.springframework.data.redis.connection.DefaultStringRedisConnection.exec(DefaultStringRedisConnection.java:120) at org.springframework.data.redis.connection.srp.SrpConnectionPipelineTxIntegrationTests.getResults(SrpConnectionPipelineTxIntegrationTests.java:85) at org.springframework.data.redis.connection.srp.SrpConnectionPipelineTxIntegrationTests.exceptionExecuteNative(SrpConnectionPipelineTxIntegrationTests.java:44) 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.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:74) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:83) at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:72) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:231) 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.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61) at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:71) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:174) 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) Caused by: java.util.concurrent.ExecutionException: java.lang.ClassCastException: redis.reply.ErrorReply cannot be cast to redis.reply.MultiBulkReply at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:222) at java.util.concurrent.FutureTask.get(FutureTask.java:83) at org.springframework.data.redis.connection.srp.SrpConnection.exec(SrpConnection.java:433) ... 33 more Caused by: java.lang.ClassCastException: redis.reply.ErrorReply cannot be cast to redis.reply.MultiBulkReply at redis.client.RedisClientBase$3.call(RedisClientBase.java:238) at redis.client.RedisClientBase$3.call(RedisClientBase.java:235) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918) at java.lang.Thread.run(Thread.java:680) {code}

    Spring JIRA | 4 years ago | Jennifer Hickey
    org.springframework.data.redis.RedisSystemException: Unknown SRP exception; nested exception is java.util.concurrent.ExecutionException: java.lang.ClassCastException: redis.reply.ErrorReply cannot be cast to redis.reply.MultiBulkReply
  3. 0

    This appears to be an SRP issue and should be filed with them. The following exception happens after attempting to execute a command with a syntax error in a transaction. As of Redis 2.6.5, exec() will now return an ErrorReply if any of the commands are syntactically incorrect. {code} org.springframework.data.redis.RedisSystemException: Unknown SRP exception; nested exception is java.util.concurrent.ExecutionException: java.lang.ClassCastException: redis.reply.ErrorReply cannot be cast to redis.reply.MultiBulkReply at org.springframework.data.redis.connection.srp.SrpConnection.convertSrpAccessException(SrpConnection.java:122) at org.springframework.data.redis.connection.srp.SrpConnection.exec(SrpConnection.java:439) at org.springframework.data.redis.connection.DefaultStringRedisConnection.exec(DefaultStringRedisConnection.java:120) at org.springframework.data.redis.connection.srp.SrpConnectionPipelineTxIntegrationTests.getResults(SrpConnectionPipelineTxIntegrationTests.java:85) at org.springframework.data.redis.connection.srp.SrpConnectionPipelineTxIntegrationTests.exceptionExecuteNative(SrpConnectionPipelineTxIntegrationTests.java:44) 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.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:74) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:83) at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:72) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:231) 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.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61) at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:71) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:174) 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) Caused by: java.util.concurrent.ExecutionException: java.lang.ClassCastException: redis.reply.ErrorReply cannot be cast to redis.reply.MultiBulkReply at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:222) at java.util.concurrent.FutureTask.get(FutureTask.java:83) at org.springframework.data.redis.connection.srp.SrpConnection.exec(SrpConnection.java:433) ... 33 more Caused by: java.lang.ClassCastException: redis.reply.ErrorReply cannot be cast to redis.reply.MultiBulkReply at redis.client.RedisClientBase$3.call(RedisClientBase.java:238) at redis.client.RedisClientBase$3.call(RedisClientBase.java:235) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918) at java.lang.Thread.run(Thread.java:680) {code}

    Spring JIRA | 4 years ago | Jennifer Hickey
    org.springframework.data.redis.RedisSystemException: Unknown SRP exception; nested exception is java.util.concurrent.ExecutionException: java.lang.ClassCastException: redis.reply.ErrorReply cannot be cast to redis.reply.MultiBulkReply
  4. Speed up your debug routine!

    Automated exception search integrated into your IDE

  5. 0

    There is an SRP-level ClassCastException when brPopLPush returns any non-null value. Likely need to report issue to SRP. {code} org.springframework.data.redis.RedisSystemException: Unknown SRP exception; nested exception is java.lang.ClassCastException: redis.reply.MultiBulkReply cannot be cast to redis.reply.BulkReply at org.springframework.data.redis.connection.srp.SrpConnection.convertSrpAccessException(SrpConnection.java:119) at org.springframework.data.redis.connection.srp.SrpConnection.bRPopLPush(SrpConnection.java:1106) at org.springframework.data.redis.connection.DefaultStringRedisConnection.bRPopLPush(DefaultStringRedisConnection.java:666) at org.springframework.data.redis.connection.AbstractConnectionIntegrationTests.testBRPopLPushTimeout(AbstractConnectionIntegrationTests.java:152) 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.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:74) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:83) at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:72) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:231) 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.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61) at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:71) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:174) 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) Caused by: java.lang.ClassCastException: redis.reply.MultiBulkReply cannot be cast to redis.reply.BulkReply at redis.client.RedisClient.brpoplpush(RedisClient.java:149) at org.springframework.data.redis.connection.srp.SrpConnection.bRPopLPush(SrpConnection.java:1104) ... 32 more {code}

    Spring JIRA | 4 years ago | Jennifer Hickey
    org.springframework.data.redis.RedisSystemException: Unknown SRP exception; nested exception is java.lang.ClassCastException: redis.reply.MultiBulkReply cannot be cast to redis.reply.BulkReply
  6. 0

    There is an SRP-level ClassCastException when brPopLPush returns any non-null value. Likely need to report issue to SRP. {code} org.springframework.data.redis.RedisSystemException: Unknown SRP exception; nested exception is java.lang.ClassCastException: redis.reply.MultiBulkReply cannot be cast to redis.reply.BulkReply at org.springframework.data.redis.connection.srp.SrpConnection.convertSrpAccessException(SrpConnection.java:119) at org.springframework.data.redis.connection.srp.SrpConnection.bRPopLPush(SrpConnection.java:1106) at org.springframework.data.redis.connection.DefaultStringRedisConnection.bRPopLPush(DefaultStringRedisConnection.java:666) at org.springframework.data.redis.connection.AbstractConnectionIntegrationTests.testBRPopLPushTimeout(AbstractConnectionIntegrationTests.java:152) 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.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:74) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:83) at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:72) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:231) 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.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61) at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:71) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:174) 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) Caused by: java.lang.ClassCastException: redis.reply.MultiBulkReply cannot be cast to redis.reply.BulkReply at redis.client.RedisClient.brpoplpush(RedisClient.java:149) at org.springframework.data.redis.connection.srp.SrpConnection.bRPopLPush(SrpConnection.java:1104) ... 32 more {code}

    Spring JIRA | 4 years ago | Jennifer Hickey
    org.springframework.data.redis.RedisSystemException: Unknown SRP exception; nested exception is java.lang.ClassCastException: redis.reply.MultiBulkReply cannot be cast to redis.reply.BulkReply

    Not finding the right solution?
    Take a tour to get the most out of Samebug.

    Tired of useless tips?

    Automated exception search integrated into your IDE

    Root Cause Analysis

    1. java.lang.ClassCastException

      redis.reply.ErrorReply cannot be cast to redis.reply.MultiBulkReply

      at redis.client.RedisClientBase$3.call()
    2. client
      RedisClientBase$3.call
      1. redis.client.RedisClientBase$3.call(RedisClientBase.java:238)
      2. redis.client.RedisClientBase$3.call(RedisClientBase.java:235)
      2 frames
    3. Java RT
      Thread.run
      1. java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
      2. java.util.concurrent.FutureTask.run(FutureTask.java:138)
      3. java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
      4. java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
      5. java.lang.Thread.run(Thread.java:680)
      5 frames