- 
    Enhancement 
- 
    Resolution: Fixed
- 
     P3 P3
- 
    1.4.0, 1.4.1, 1.4.2, 5.0
- 
        tiger
- 
        generic, x86
- 
        generic, windows_2000, windows_xp
The current JSSE javax.net.ssl.SSLSocket API is based on the
java.net.Socket model, which by nature uses a blocking API model. The
introduction of java.nio.channels API (JSR-51) brought a selectable,
non-blocking I/O model to J2SE, but was not based on Sockets. Developers
have requested a non-blocking SSL/TLS implementation that could be
applied to such diverse I/O abstractions, such as:
Socket-Input/OutputStream
non-blocking I/O (polling) (e.g. SocketChannel-nonblocking)
selectable non-blocking I/O, (e.g. SocketChannel-Selectors)
other asynchronous I/O models (e.g. the proposed JSR 203)
local ByteBuffers/byte arrays
A new abstraction called SSLEngine is introduced which separates the
SSL/TLS functionality from the I/O. The SSLEngine operates simply on
inbound and outbound byte streams, and it is the responsibility of the
SSLEngine user to arrange for reliable I/O transport to the peer. By
separating the SSL/TLS abstraction from the I/O transport mechanism, the
SSLEngine can be used with a wide variety of I/O types.
- duplicates
- 
                    JDK-4635458 NIO/JSSE integration -           
- Closed
 
-         
- 
                    JDK-4727279 RFE: Make an SSLServerSocketChannel -           
- Closed
 
-         
- 
                    JDK-4808184 RFE: Support non-blocking SSL sockets -           
- Closed
 
-         
- 
                    JDK-5084242 SSLSocketChannel -           
- Closed
 
-         
- relates to
- 
                    JDK-4836493 Socket timeouts for SSLSockets causes data corruption -           
- Resolved
 
-