Class UnixSocket.UnselectableByteChannel

  • All Implemented Interfaces:
    java.io.Closeable, java.lang.AutoCloseable, java.nio.channels.Channel, java.nio.channels.ReadableByteChannel, java.nio.channels.WritableByteChannel
    Enclosing class:
    UnixSocket

    static final class UnixSocket.UnselectableByteChannel
    extends java.lang.Object
    implements java.nio.channels.ReadableByteChannel, java.nio.channels.WritableByteChannel
    A byte channel that doesn't implement SelectableChannel. Though that type isn't in the public API, if the channel passed in implements that interface then unwanted synchronization is performed which can harm concurrency and can cause deadlocks. https://bugs.openjdk.java.net/browse/JDK-4774871
    • Constructor Detail

    • Method Detail

      • write

        public int write​(java.nio.ByteBuffer src)
                  throws java.io.IOException
        Specified by:
        write in interface java.nio.channels.WritableByteChannel
        Throws:
        java.io.IOException
      • read

        public int read​(java.nio.ByteBuffer dst)
                 throws java.io.IOException
        Specified by:
        read in interface java.nio.channels.ReadableByteChannel
        Throws:
        java.io.IOException
      • isOpen

        public boolean isOpen()
        Specified by:
        isOpen in interface java.nio.channels.Channel
      • close

        public void close()
                   throws java.io.IOException
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.nio.channels.Channel
        Specified by:
        close in interface java.io.Closeable
        Throws:
        java.io.IOException