A DatagramChannel is an InterruptibleChannel so blocking I/O operations (specifically receive and read) need to be interruptible. This is problematic for a future DatagramSocket/MulticastSocket implementations that uses a DatagramChannel under the covers as the legacy APIs do not support interruption. It would be desirable to have an easy, but JDK internal, way to create a DatagramChannel that is not interruptible.
While in the area, it would also be desirable if SelectorProvider's open methods didn't use a static lock object. There is no need to synchronize when creating network channels. It is possible that this lock is contended in some environments.