docs: public Exception checkIfSuccessOrWait() throws NoResponseException, InterruptedException {
          connectionLock.lock();
          try {
              switch (state) {
              // Return immediately on success or failure
              case Success:
                  return null;
              case Failure:
                  return getException();
              default:
                  // Do nothing
                  break;
              }
              waitForConditionOrTimeout();
          } finally {
              connectionLock.unlock();
          }
          return checkForResponse();
      }