Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8315422

getSoTimeout() would be in try block in SSLSocketImpl

XMLWordPrintable

        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.

              jjiang John Jiang
              jjiang John Jiang
              Votes:
              0 Vote for this issue
              Watchers:
              8 Start watching this issue

                Created:
                Updated:
                Resolved: