Java spring数据重定向流中不支持的操作

Java spring数据重定向流中不支持的操作,java,project-reactor,spring-data-redis,spring-data-redis-reactive,Java,Project Reactor,Spring Data Redis,Spring Data Redis Reactive,我使用SpringDataRedis反应式代码来监听来自redis流的传入消息。我偶尔会遇到以下异常,我不确定什么时候会发生。当我在第360行翻阅spring-data-redis-2.3.2.RELEASE的DefaultStreamReceiver类的源代码时,有一个语句overflow.add(message),它基本上是添加到反应库的SbscArrayQueue中,其添加方法simple抛出不支持的操作异常 2020-11-09T19:44:56.438+0000 [elasti

我使用SpringDataRedis反应式代码来监听来自redis流的传入消息。我偶尔会遇到以下异常,我不确定什么时候会发生。当我在第360行翻阅spring-data-redis-2.3.2.RELEASE的DefaultStreamReceiver类的源代码时,有一个语句overflow.add(message),它基本上是添加到反应库的SbscArrayQueue中,其添加方法simple抛出不支持的操作异常

    2020-11-09T19:44:56.438+0000 [elastic-126] [ERROR] reactor.util.Loggers$Slf4JLogger - Scheduler worker in group main failed with an uncaught exception
reactor.core.Exceptions$ErrorCallbackNotImplemented: java.lang.UnsupportedOperationException
Caused by: java.lang.UnsupportedOperationException
    at reactor.util.concurrent.SpscArrayQueue.add(SpscArrayQueue.java:152) ~[reactor-core-3.3.8.RELEASE.jar!/:3.3.8.RELEASE]
    at org.springframework.data.redis.stream.DefaultStreamReceiver$StreamSubscription.onStreamMessage(DefaultStreamReceiver.java:360) ~[spring-data-redis-2.3.2.RELEASE.jar!/:2.3.2.RELEASE]
    at org.springframework.data.redis.stream.DefaultStreamReceiver$StreamSubscription.access$100(DefaultStreamReceiver.java:186) ~[spring-data-redis-2.3.2.RELEASE.jar!/:2.3.2.RELEASE]
    at org.springframework.data.redis.stream.DefaultStreamReceiver$StreamSubscription$1.onNext(DefaultStreamReceiver.java:303) ~[spring-data-redis-2.3.2.RELEASE.jar!/:2.3.2.RELEASE]
    at org.springframework.data.redis.stream.DefaultStreamReceiver$StreamSubscription$1.onNext(DefaultStreamReceiver.java:294) ~[spring-data-redis-2.3.2.RELEASE.jar!/:2.3.2.RELEASE]
    at reactor.core.publisher.FluxUsingWhen$UsingWhenSubscriber.onNext(FluxUsingWhen.java:355) ~[reactor-core-3.3.8.RELEASE.jar!/:3.3.8.RELEASE]
    at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:114) ~[reactor-core-3.3.8.RELEASE.jar!/:3.3.8.RELEASE]
    at reactor.core.publisher.MonoFlatMapMany$FlatMapManyInner.onNext(MonoFlatMapMany.java:242) ~[reactor-core-3.3.8.RELEASE.jar!/:3.3.8.RELEASE]
    at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:73) ~[reactor-core-3.3.8.RELEASE.jar!/:3.3.8.RELEASE]
    at reactor.core.publisher.MonoFlatMapMany$FlatMapManyInner.onNext(MonoFlatMapMany.java:242) ~[reactor-core-3.3.8.RELEASE.jar!/:3.3.8.RELEASE]
    at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:114) ~[reactor-core-3.3.8.RELEASE.jar!/:3.3.8.RELEASE]
    at io.lettuce.core.RedisPublisher$ImmediateSubscriber.onNext(RedisPublisher.java:917) ~[lettuce-core-5.3.2.RELEASE.jar!/:5.3.2.RELEASE]
    at io.lettuce.core.RedisPublisher$RedisSubscription.onNext(RedisPublisher.java:290) ~[lettuce-core-5.3.2.RELEASE.jar!/:5.3.2.RELEASE]
    at io.lettuce.core.output.StreamingOutput$Subscriber.onNext(StreamingOutput.java:64) ~[lettuce-core-5.3.2.RELEASE.jar!/:5.3.2.RELEASE]
    at io.lettuce.core.output.StreamReadOutput.complete(StreamReadOutput.java:95) ~[lettuce-core-5.3.2.RELEASE.jar!/:5.3.2.RELEASE]
    at io.lettuce.core.protocol.RedisStateMachine.doDecode(RedisStateMachine.java:176) ~[lettuce-core-5.3.2.RELEASE.jar!/:5.3.2.RELEASE]
    at io.lettuce.core.protocol.RedisStateMachine.decode(RedisStateMachine.java:142) ~[lettuce-core-5.3.2.RELEASE.jar!/:5.3.2.RELEASE]
    at io.lettuce.core.protocol.CommandHandler.decode(CommandHandler.java:742) ~[lettuce-core-5.3.2.RELEASE.jar!/:5.3.2.RELEASE]
    at io.lettuce.core.protocol.CommandHandler.decode0(CommandHandler.java:706) ~[lettuce-core-5.3.2.RELEASE.jar!/:5.3.2.RELEASE]
    at io.lettuce.core.protocol.CommandHandler.decode(CommandHandler.java:701) ~[lettuce-core-5.3.2.RELEASE.jar!/:5.3.2.RELEASE]
    at io.lettuce.core.protocol.CommandHandler.decode(CommandHandler.java:622) ~[lettuce-core-5.3.2.RELEASE.jar!/:5.3.2.RELEASE]
    at io.lettuce.core.protocol.CommandHandler.channelRead(CommandHandler.java:591) ~[lettuce-core-5.3.2.RELEASE.jar!/:5.3.2.RELEASE]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[netty-transport-4.1.51.Final.jar!/:4.1.51.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[netty-transport-4.1.51.Final.jar!/:4.1.51.Final]
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[netty-transport-4.1.51.Final.jar!/:4.1.51.Final]
    at io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1526) ~[netty-handler-4.1.51.Final.jar!/:4.1.51.Final]
    at io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1275) ~[netty-handler-4.1.51.Final.jar!/:4.1.51.Final]
    at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1322) ~[netty-handler-4.1.51.Final.jar!/:4.1.51.Final]
    at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:501) ~[netty-codec-4.1.51.Final.jar!/:4.1.51.Final]
    at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:440) ~[netty-codec-4.1.51.Final.jar!/:4.1.51.Final]
    at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:276) ~[netty-codec-4.1.51.Final.jar!/:4.1.51.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[netty-transport-4.1.51.Final.jar!/:4.1.51.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[netty-transport-4.1.51.Final.jar!/:4.1.51.Final]
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[netty-transport-4.1.51.Final.jar!/:4.1.51.Final]
    at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) ~[netty-transport-4.1.51.Final.jar!/:4.1.51.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[netty-transport-4.1.51.Final.jar!/:4.1.51.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[netty-transport-4.1.51.Final.jar!/:4.1.51.Final]
    at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) ~[netty-transport-4.1.51.Final.jar!/:4.1.51.Final]
    at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:163) ~[netty-transport-4.1.51.Final.jar!/:4.1.51.Final]
    at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:714) ~[netty-transport-4.1.51.Final.jar!/:4.1.51.Final]
    at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:650) ~[netty-transport-4.1.51.Final.jar!/:4.1.51.Final]
    at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:576) ~[netty-transport-4.1.51.Final.jar!/:4.1.51.Final]
    at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493) ~[netty-transport-4.1.51.Final.jar!/:4.1.51.Final]
    at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989) ~[netty-common-4.1.51.Final.jar!/:4.1.51.Final]
    at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[netty-common-4.1.51.Final.jar!/:4.1.51.Final]
    at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[netty-common-4.1.51.Final.jar!/:4.1.51.Final]
    at java.lang.Thread.run(Thread.java:834) [?:?]
在我看来,这确实像一只春天的虫子。知道为什么会发生这种情况吗?

我在这里创建了一个bug,它被接受了。但我仍然不确定如何重现这一点。