Мое приложение выдает эту ошибку:
2020-04-24 14:19:11 - Failed to release a message: PooledUnsafeDirectByteBuf(freed)
io.netty.util.IllegalReferenceCountException: refCnt: 0, decrement: 1
at io.netty.buffer.AbstractReferenceCountedByteBuf.release0(AbstractReferenceCountedByteBuf.java:124)
at io.netty.buffer.AbstractReferenceCountedByteBuf.release(AbstractReferenceCountedByteBuf.java:107)
at io.netty.util.ReferenceCountUtil.release(ReferenceCountUtil.java:88)
at io.netty.util.ReferenceCountUtil.safeRelease(ReferenceCountUtil.java:113)
at io.netty.channel.ChannelOutboundBuffer.remove0(ChannelOutboundBuffer.java:292)
at io.netty.channel.ChannelOutboundBuffer.failFlushed(ChannelOutboundBuffer.java:639)
Для этого кода:
@Override
public Mono<Void> handle(WebSocketSession session) {
BinaryWebsocketMessageSubscriber subscriber = new BinaryWebsocketMessageSubscriber(binaryEventPublisher);
return session.receive()
.map(WebSocketMessage::retain)
.map(this::toBinaryEvent)
.doOnNext(subscriber::onNext)
.doOnError(subscriber::onError)
.doOnComplete(subscriber::onComplete)
.zipWith(session.send(binaryOutputEvents.map(dataBuffer -> session.binaryMessage(dataBufferFactory -> dataBuffer))))
.then();
}
Это простой обработчик, который передает полученный двоичный файл всем сеансам / клиентам. Что может быть не так в моем коде?