Name: auR10023 Date: 11/13/2002
java.nio.channels.Selector.selectedKeys().addAll() doesn't throw
UnsupportedOperationException.
Javadoc for Selector.selectedKeys() method states:
...
Keys may be removed from, but not directly added to, the selected-key set. Any attempt to add an object to the key set will cause an UnsupportedOperationException to be thrown.
...
Here is the example:
-------test.java---------
import java.io.*;
import java.nio.*;
import java.nio.channels.*;
public class test {
public static void main(String args[]) {
DatagramChannel channel = null;
Selector sel = null;
SelectionKey key = null;
try {
channel = DatagramChannel.open();
channel.configureBlocking(false);
sel = Selector.open();
key = channel.register(
sel, SelectionKey.OP_WRITE);
} catch (IOException e) {
System.out.println("Unexpected IOException");
return;
}
try {
sel.selectedKeys().addAll(sel.selectedKeys());
System.out.println("UnsupportedOperationException should be " +
"thrown");
return;
} catch (UnsupportedOperationException e) {
}
System.out.println("OKAY");
}
}
Here is the result
#java -version
java version "1.4.2-beta"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2-beta-b06)
Java HotSpot(TM) Client VM (build 1.4.2-beta-b06, mixed mode)
#java test
UnsupportedOperationException should be thrown
======================================================================
- duplicates
-
JDK-4778099 (se) Selector.selectedKeys() should allow removal but not addition
- Closed