code: @Override @Nullable
      public synchronized Host getNextHost(@NotNull Host exceptHost) {
          int pos = getNextHostPos();
          if (pos==-1) {
              //don't reset lastReturnedHost to -1 here!
              return null;
          }
          Host ret = getHostAtPos(pos);
          if (exceptHost.equals(ret)) {
              pos++;
              if (pos >= hosts.size()) {
                  pos = 0;
              }
              ret = getHostAtPos(pos);
              if (exceptHost.equals(ret)) {
                  //don't reset lastReturnedHost to -1 here!
                  return null;
              }
          }
          lastReturnedHost = pos;
          return ret;
      }
docs: This behaves like {@link #getHost} in this class, and forwards to the next one
  in case the one that would be returned is the same as <code>exceptHost</code>.
  @param exceptHost The host that is not acceptable, for example because it was just used and failed.