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 looks good to me. ------------- Marked as reviewed by jnimeh (Reviewer). PR Review: https://git.openjdk.org/jdk/pull/15503#pullrequestreview-1603786718