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

getSoTimeout() would be in try block in SSLSocketImpl

    XMLWordPrintable

Details

    Description

      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.

      Attachments

        Issue Links

          Activity

            People

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

              Dates

                Created:
                Updated:
                Resolved: