2014-06-16 3 views
1

Приложение My Netty зависает, когда я пытаюсь закрыть соединение с клиентом io.netty.channel.Channel TCP/IP.Приложение Netty зависает, когда я пытаюсь закрыть io.netty.channel.Channel using closeFuture()

я:

ch.isOpen(); //this is TRUE 
ch.closeFuture().sync(); //never returns 

трассировки стека для потока вызывающей синхронизации здесь.

JavaFX Application [email protected], 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) 

Есть ли что-то, что может помешать закрытию канала? Могу ли я заставить его закрыться по-другому?

Спасибо!

+0

'Bootstrap b = new Bootstrap(); b.bind (port) .sync(). Channel(). CloseFuture(). Wait(); ' Обычно вы привязываете канал к бутстрапу. – Tek

ответ

6

closeFuture.sync() не для закрытия канала, а позволяет блокировать до тех пор, пока канал не будет закрыт. Для закрытия канала вы должны вызвать Channel.close().

+0

совершенно верно! Я думал, что я тоже попробовал close(), но, видимо, не потому, что он работает так, как рекламируется. Большое спасибо. – Andrew

Смежные вопросы