Skip to content

Commit fdf88c9

Browse files
committed
Workaround for onReadIdle issue in Reactor TcpClient
reactor/reactor-netty#22
1 parent 2a3e013 commit fdf88c9

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

spring-messaging/src/main/java/org/springframework/messaging/tcp/reactor/ReactorNettyTcpConnection.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,12 @@
1717
package org.springframework.messaging.tcp.reactor;
1818

1919
import io.netty.buffer.ByteBuf;
20+
import io.netty.channel.ChannelPipeline;
2021
import reactor.core.publisher.DirectProcessor;
2122
import reactor.core.publisher.Mono;
2223
import reactor.ipc.netty.NettyInbound;
2324
import reactor.ipc.netty.NettyOutbound;
25+
import reactor.ipc.netty.NettyPipeline;
2426

2527
import org.springframework.messaging.Message;
2628
import org.springframework.messaging.tcp.TcpConnection;
@@ -64,6 +66,14 @@ public ListenableFuture<Void> send(Message<P> message) {
6466
@Override
6567
@SuppressWarnings("deprecation")
6668
public void onReadInactivity(Runnable runnable, long inactivityDuration) {
69+
70+
// TODO: workaround for https://github.com/reactor/reactor-netty/issues/22
71+
ChannelPipeline pipeline = this.inbound.context().channel().pipeline();
72+
String name = NettyPipeline.OnChannelReadIdle;
73+
if (pipeline.context(name) != null) {
74+
pipeline.remove(name);
75+
}
76+
6777
this.inbound.onReadIdle(inactivityDuration, runnable);
6878
}
6979

0 commit comments

Comments
 (0)