ServerLocationResponse queryLocators(ServerLocationRequest request) {
    ServerLocationResponse response = null;
    final boolean isDebugEnabled = logger.isDebugEnabled();

    for (final HostAndPort locator : locators.get()) {
      if (isDebugEnabled) {
        logger.debug("Sending query to locator {}: {}", locator, request);
      }
      ServerLocationResponse tempResponse = queryOneLocator(locator, request);
      if (isDebugEnabled) {
        logger.debug("Received query response from locator {}: {}", locator, tempResponse);
      }
      if (tempResponse != null) {
        response = tempResponse;
        if (response.hasResult()) {
          break;
        }
      }
    }

    return response;
  }
key is the InetSocketAddress of the locator. value will be an exception if we have already
found the locator to be dead. value will be null if we last saw it alive.
geode-core/src/main/java/org/apache/geode/cache/client/internal/AutoConnectionSourceImpl.java