Closed nits3392 closed 2 weeks ago
Hi @tishun - Any update on the this? Possible fix or root cause ?
Hey @nits3392 , as of right now unfortunately I cannot commit to a timeline as we are overloaded with a couple of urgent requests.
A temporary workaround for this issue can be to use ProtocolVersion.RESP2
with ClientOptions
till the BooleanListOutput
is fixed
Bug Report
Current Behavior
Using Redis in docker on localhost. Issuing command via extending Commands interaface:
when I convert the result of any command issued
When I collect this value or convert to futures I get this exception.
Redis version 7.2.x Lettuce Core 6.3.1 SpringBoot - 2.5.12
However when I use Mono from single item insert :
the response is decoded correctly.
I also tried dispatch but for that to work I had to overload set(boolean) method. By default it also throws the same exception.
Stack trace
```java reactor.core.Exceptions$ErrorCallbackNotImplemented: java.lang.UnsupportedOperationException: io.lettuce.core.output.BooleanListOutput does not support set(boolean) Caused by: java.lang.UnsupportedOperationException: io.lettuce.core.output.BooleanListOutput does not support set(boolean) at io.lettuce.core.output.CommandOutput.set(CommandOutput.java:129) at io.lettuce.core.protocol.RedisStateMachine.safeSet(RedisStateMachine.java:758) at io.lettuce.core.protocol.RedisStateMachine.handleBoolean(RedisStateMachine.java:419) at io.lettuce.core.protocol.RedisStateMachine$State$Type.handle(RedisStateMachine.java:205) at io.lettuce.core.protocol.RedisStateMachine.doDecode(RedisStateMachine.java:339) at io.lettuce.core.protocol.RedisStateMachine.decode(RedisStateMachine.java:300) at io.lettuce.core.protocol.CommandHandler.decode(CommandHandler.java:840) at io.lettuce.core.protocol.CommandHandler.decode0(CommandHandler.java:791) at io.lettuce.core.protocol.CommandHandler.decode(CommandHandler.java:765) at io.lettuce.core.protocol.CommandHandler.decode(CommandHandler.java:657) at io.lettuce.core.protocol.CommandHandler.channelRead(CommandHandler.java:597) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:722) at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:658) at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:584) at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:496) at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986) at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ```Input Code
Input Code
```java RedisCommandFactory commandFactory = new RedisCommandFactory(redisClient.connect()); bloomCommand = commandFactory.getCommands(BloomCommandReactive.class); @Command("BF.INSERT :filter CAPACITY :capacity ERROR :error ITEMS :items ") FluxExpected behavior/code
Environment
Possible Solution
Additional context