code: public Condition execute() {
          startTime = new Date().getTime();
          Collections.sort(conditionList);
          while (true) {
              Condition condition = findCondition();
              if (condition != null) {
                  log.debug("{} - executed in ({}ms)", condition, new Date().getTime() - startTime);
                  return condition;
              }
              Utils.sleep(SLEEP_INTERVAL);
          }
      }
docs: <p>Iterates through conditions list until one of the conditions is met or the method times out</p>
  <p>in case of timeout a FailCondition("@TimeoutCondition@") will be returned</p>
  
  @return the executed Condition, unless the method times out