On Thu, 31 Aug 2023 02:34:58 GMT, John Jiang <jji...@openjdk.org> wrote:
> The method `SSLSocketImpl::closeSocket` has the below code snippet, > > > if (appInput.readLock.tryLock()) { > int soTimeout = getSoTimeout(); > try { > // deplete could hang on the skip operation > // in case of infinite socket read timeout. > // Change read timeout to avoid deadlock. > // This workaround could be replaced later > // with the right synchronization > if (soTimeout == 0) > setSoTimeout(DEFAULT_SKIP_TIMEOUT); > inputRecord.deplete(false); > } catch (java.net.SocketTimeoutException stEx) { > // skip timeout exception during deplete > } finally { > if (soTimeout == 0) > setSoTimeout(soTimeout); > appInput.readLock.unlock(); > } > } > > > If `getSoTimeout()` throws an exception, say `SocketException`, > `appInput.readLock.unlock()` cannot be called. This pull request has now been integrated. Changeset: 2264667b Author: John Jiang <jji...@openjdk.org> URL: https://git.openjdk.org/jdk/commit/2264667bba2311b568257a933813fa76a9e75313 Stats: 19 lines in 1 file changed: 6 ins; 3 del; 10 mod 8315422: getSoTimeout() would be in try block in SSLSocketImpl Reviewed-by: jnimeh ------------- PR: https://git.openjdk.org/jdk/pull/15503