当我尝试使用closeFuture()关闭io.netty.channel.Channel时,Netty应用程序挂起

时间:2014-06-16 05:32:32

标签: java netty

当我尝试关闭io.netty.channel.Channel TCP / IP客户端连接时,My Netty应用程序挂起。

我做:

ch.isOpen(); //this is TRUE
ch.closeFuture().sync(); //never returns
线程调用同步的

堆栈跟踪就在这里。

JavaFX Application Thread@583, prio=5, in group 'main', status: 'WAIT'
at java.lang.Object.wait(Object.java:-1)
at java.lang.Object.wait(Object.java:502)
at io.netty.util.concurrent.DefaultPromise.await(DefaultPromise.java:260)
at io.netty.channel.DefaultChannelPromise.await(DefaultChannelPromise.java:129)
at io.netty.channel.DefaultChannelPromise.await(DefaultChannelPromise.java:28)
at io.netty.util.concurrent.DefaultPromise.sync(DefaultPromise.java:224)
at io.netty.channel.DefaultChannelPromise.sync(DefaultChannelPromise.java:117)
at io.netty.channel.DefaultChannelPromise.sync(DefaultChannelPromise.java:28)
at MyClient.stop(MyClient.java:46)

是否有可以阻止频道关闭的内容?我可以用另一种方式强制关闭吗?

谢谢!

1 个答案:

答案 0 :(得分:6)

closeFuture.sync()不是用于关闭频道,而是允许您阻止频道关闭。要关闭频道,您可以调用Channel.close()。