On Wed, 6 Jan 2021 23:28:34 GMT, Clive Verghese <[email protected]> wrote:

> This PR aims to revert some more cases where SocketExceptions are improperly 
> being wrapped as SSLException. Some work for this was done in 
> [JDK-8235263](https://bugs.openjdk.java.net/browse/JDK-8235263), but that 
> change did not cover all the cases.
> 
> As it was mentioned in JDK-8235263, some applications rely on receiving 
> SocketException to decide if the connection should be retried. An example of 
> this would be Apache HTTP client. This PR should ideally fix 
> https://issues.apache.org/jira/browse/HTTPCLIENT-2032

Changes requested by xuelei (Reviewer).

src/java.base/share/classes/sun/security/ssl/SSLSocketImpl.java line 1678:

> 1676:         // Don't close the Socket in case of timeouts, interrupts or 
> SocketException.
> 1677:         if (cause instanceof InterruptedIOException ||
> 1678:                 cause instanceof SocketException) {

Maybe we still need to shutdown the connection with a fatal alter for socket 
exception, otherwise there might be socket leaks.  Instead, the socket 
exception could be thrown after the fatal alert.

src/java.base/share/classes/sun/security/ssl/SSLSocketImpl.java line 452:

> 450:             } catch (SocketException se) {
> 451:                 // don't change exception in case of SocketException
> 452:                 throw se;

Maybe, the fatal alter could be sent before thrown the socket exception.

-------------

PR: https://git.openjdk.java.net/jdk/pull/1968

Reply via email to