diff options
Diffstat (limited to 'libjava/classpath/gnu/java/nio/ServerSocketChannelSelectionKey.java')
-rw-r--r-- | libjava/classpath/gnu/java/nio/ServerSocketChannelSelectionKey.java | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/libjava/classpath/gnu/java/nio/ServerSocketChannelSelectionKey.java b/libjava/classpath/gnu/java/nio/ServerSocketChannelSelectionKey.java index d00c2b7482a..5b510cb6f4d 100644 --- a/libjava/classpath/gnu/java/nio/ServerSocketChannelSelectionKey.java +++ b/libjava/classpath/gnu/java/nio/ServerSocketChannelSelectionKey.java @@ -38,6 +38,7 @@ exception statement from your version. */ package gnu.java.nio; +import java.io.IOException; import java.nio.channels.spi.AbstractSelectableChannel; public final class ServerSocketChannelSelectionKey @@ -49,10 +50,16 @@ public final class ServerSocketChannelSelectionKey super (channel, selector); } + // FIXME don't use file descriptor integers public int getNativeFD() { - NIOServerSocket socket = - (NIOServerSocket) ((ServerSocketChannelImpl) ch).socket(); - return socket.getPlainSocketImpl().getNativeFD(); + try + { + return ((ServerSocketChannelImpl) ch).getVMChannel().getState().getNativeFD(); + } + catch (IOException ioe) + { + throw new IllegalStateException(ioe); + } } } |