セキュア チャットの例に従って、netty を使用して SSL サーバーを作成しています。
自動化されたテストがあります
- SSL接続を開く
- しばらくやり取りする
- チャンネルを閉じる
(つまり、クライアントは完了時にチャネルを閉じます)
テストはすべてパスし、パイプラインには「exceptionCaught」を実装する別のハンドラーがあります。場合によっては、クライアントがチャネルを閉じると、サーバーで ExceptionCaught イベントが生成されます。
java.io.IOException: An established connection was aborted by the software in your host machine
at sun.nio.ch.SocketDispatcher.read0(Native Method)
at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:43)
at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:218)
at sun.nio.ch.IOUtil.read(IOUtil.java:186)
at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:359)
at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:66)
at org.jboss.netty.channel.socket.nio.AbstractNioWorker.processSelectedKeys(AbstractNioWorker.java:364)
at org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:238)
at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:38)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
SSLHandler の上と下の両方に単純なロギング ダウンストリーム ハンドラーを追加することで、クライアントがチャネルを閉じた後に SSLHandler がダウンストリーム書き込みイベントを生成しているように見えると判断しましたが、それが関連しているかどうかはわかりません。
ここで何が起こっているのかについての指針はありますか?