code: @Override
    public List<OperableTrigger> acquireNextTriggers(
        long noLaterThan, int maxCount, long timeWindow) {
  
      synchronized (lock) {
        List<OperableTrigger> result = new ArrayList<OperableTrigger>();
  
        while (true) {
          TriggerWrapper tw;
  
          try {
            tw = timeWrappedTriggers.first();
            if (tw == null) {
              return result;
            }
            timeWrappedTriggers.remove(tw);
          } catch (java.util.NoSuchElementException nsee) {
            return result;
          }
  
          if (tw.trigger.getNextFireTime() == null) {
            continue;
          }
  
          if (applyMisfire(tw)) {
            if (tw.trigger.getNextFireTime() != null) {
              timeWrappedTriggers.add(tw);
            }
            continue;
          }
  
          if (tw.getTrigger().getNextFireTime().getTime() > noLaterThan + timeWindow) {
            timeWrappedTriggers.add(tw);
            return result;
          }
  
          tw.state = TriggerWrapper.STATE_ACQUIRED;
  
          tw.trigger.setFireInstanceId(getFiredTriggerRecordId());
          OperableTrigger trig = (OperableTrigger) tw.trigger.clone();
          result.add(trig);
  
          if (result.size() == maxCount) {
            return result;
          }
        }
      }
    }
docs: Get a handle to the next trigger to be fired, and mark it as 'reserved' by the calling
  scheduler.
  
  @see #releaseAcquiredTrigger(SchedulingContext, Trigger)