Sun GlassFish Enterprise Server 2.1 リリースノート

ASQuickStartupSelectionKey の代わりに NULL を返して、SocketChannel.keyFor() をブレークする (Issue Tracker 3027)

説明

複数のセレクタに SocketChannel が登録されている場合、socketChannel.keyFor(lastRegisteredSelector) を実行すると SelectionKey の代わりに NULL が返されます。

解決方法

これは JDK バグ 6562829 に関連しており、6.0 U3 で修正される予定です。回避方法は Enterprise Server 2.1 に組み込まれており、keyFor API を読み込む前はセレクタがラップ解除されています。これにより、JDK バグが修正されるまで、keyFor の正常な動作が可能になっています。