Index: gnu/java/nio/DatagramChannelImpl.java =================================================================== RCS file: /cvsroot/classpath/classpath/gnu/java/nio/DatagramChannelImpl.java,v retrieving revision 1.11 diff -u -b -B -r1.11 DatagramChannelImpl.java --- gnu/java/nio/DatagramChannelImpl.java 6 Feb 2004 09:13:24 -0000 1.11 +++ gnu/java/nio/DatagramChannelImpl.java 27 Feb 2004 11:18:45 -0000 @@ -1,5 +1,5 @@ /* DatagramChannelImpl.java -- - Copyright (C) 2002, 2003 Free Software Foundation, Inc. + Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -38,10 +38,11 @@ package gnu.java.nio; +import gnu.java.net.PlainDatagramSocketImpl; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; -import gnu.java.net.PlainDatagramSocketImpl; +import java.net.InetSocketAddress; import java.net.SocketAddress; import java.net.SocketTimeoutException; import java.nio.ByteBuffer; @@ -256,6 +257,10 @@ if (!isOpen()) throw new ClosedChannelException(); + if (target instanceof InetSocketAddress + && ((InetSocketAddress) target).isUnresolved()) + throw new IOException("Target address not resolved"); + byte[] buffer; int offset = 0; int len = src.remaining(); Index: gnu/java/nio/FileLockImpl.java =================================================================== RCS file: /cvsroot/classpath/classpath/gnu/java/nio/FileLockImpl.java,v retrieving revision 1.4 diff -u -b -B -r1.4 FileLockImpl.java --- gnu/java/nio/FileLockImpl.java 25 Jan 2004 13:26:08 -0000 1.4 +++ gnu/java/nio/FileLockImpl.java 27 Feb 2004 11:18:45 -0000 @@ -68,7 +68,7 @@ this.fd = fd; } - public void finalize() + protected void finalize() { try { Index: java/nio/channels/FileChannel.java =================================================================== RCS file: /cvsroot/classpath/classpath/java/nio/channels/FileChannel.java,v retrieving revision 1.11 diff -u -b -B -r1.11 FileChannel.java --- java/nio/channels/FileChannel.java 14 Jul 2003 05:56:27 -0000 1.11 +++ java/nio/channels/FileChannel.java 27 Feb 2004 11:18:45 -0000 @@ -53,9 +53,9 @@ { int m; - public static MapMode READ_ONLY = new MapMode(0); - public static MapMode READ_WRITE = new MapMode(1); - public static MapMode PRIVATE = new MapMode(2); + public static final MapMode READ_ONLY = new MapMode(0); + public static final MapMode READ_WRITE = new MapMode(1); + public static final MapMode PRIVATE = new MapMode(2); /** * Initializes the MapMode. Index: java/nio/channels/SocketChannel.java =================================================================== RCS file: /cvsroot/classpath/classpath/java/nio/channels/SocketChannel.java,v retrieving revision 1.9 diff -u -b -B -r1.9 SocketChannel.java --- java/nio/channels/SocketChannel.java 21 Dec 2002 11:42:37 -0000 1.9 +++ java/nio/channels/SocketChannel.java 27 Feb 2004 11:18:45 -0000 @@ -87,11 +87,7 @@ public static SocketChannel open (SocketAddress remote) throws IOException { SocketChannel ch = open (); - - if (ch.connect (remote)) - { - } - + ch.connect(remote); return ch; } Index: java/nio/channels/spi/AbstractSelectableChannel.java =================================================================== RCS file: /cvsroot/classpath/classpath/java/nio/channels/spi/AbstractSelectableChannel.java,v retrieving revision 1.12 diff -u -b -B -r1.12 AbstractSelectableChannel.java --- java/nio/channels/spi/AbstractSelectableChannel.java 6 Feb 2004 09:13:24 -0000 1.12 +++ java/nio/channels/spi/AbstractSelectableChannel.java 27 Feb 2004 11:18:45 -0000 @@ -48,7 +48,6 @@ public abstract class AbstractSelectableChannel extends SelectableChannel { - private int registered; private boolean blocking = true; private Object LOCK = new Object(); private SelectorProvider provider; @@ -135,9 +134,15 @@ */ public final SelectionKey keyFor(Selector selector) { + if (! isOpen()) + return null; + try { - return register (selector, 0, null); + synchronized(blockingLock()) + { + return locate (selector); + } } catch (Exception e) { @@ -196,6 +201,7 @@ if (key != null) { + if (att != null) key.attach (att); } else