From 5178531ad902228ea7c215418e82b8d68814518e Mon Sep 17 00:00:00 2001 From: mkoch Date: Thu, 26 Feb 2004 19:45:51 +0000 Subject: 2004-02-26 Michael Koch * gnu/java/nio/FileLockImpl.java (finalize): Made protected. * java/nio/channels/FileChannel.java (MapMode.READ_ONLY): Made final. (MapMode.READ_WRITE): Made final. (MapMode.PRIVATE): Made final. * java/nio/channels/SocketChannel.java (open): Simplified code. * java/nio/channels/spi/AbstractSelectableChannel.java (registered): Unused, removed. (keyFor): Check channel is open, only locate key and not add a new one. (register): Don't delete attachments. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@78519 138bc75d-0d04-0410-961f-82ee72b054a4 --- libjava/java/nio/channels/spi/AbstractSelectableChannel.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'libjava/java/nio/channels/spi/AbstractSelectableChannel.java') diff --git a/libjava/java/nio/channels/spi/AbstractSelectableChannel.java b/libjava/java/nio/channels/spi/AbstractSelectableChannel.java index 76c6c2b899f..0a872bc7bc8 100644 --- a/libjava/java/nio/channels/spi/AbstractSelectableChannel.java +++ b/libjava/java/nio/channels/spi/AbstractSelectableChannel.java @@ -48,7 +48,6 @@ import java.util.ListIterator; 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 abstract class AbstractSelectableChannel extends SelectableChannel */ 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,7 +201,8 @@ public abstract class AbstractSelectableChannel extends SelectableChannel if (key != null) { - key.attach (att); + if (att != null) + key.attach (att); } else { -- cgit v1.2.1