code: @Override
    public void validate () throws SchedulerException
    {
      super.validate ();
  
      if (m_eRepeatIntervalUnit == null ||
          !(m_eRepeatIntervalUnit.equals (EIntervalUnit.SECOND) ||
            m_eRepeatIntervalUnit.equals (EIntervalUnit.MINUTE) ||
            m_eRepeatIntervalUnit.equals (EIntervalUnit.HOUR)))
        throw new SchedulerException ("Invalid repeat IntervalUnit (must be SECOND, MINUTE or HOUR).");
      if (m_nRepeatInterval < 1)
      {
        throw new SchedulerException ("Repeat Interval cannot be zero.");
      }
  
      // Ensure interval does not exceed 24 hours
      final long secondsInHour = 24 * 60 * 60L;
      if (m_eRepeatIntervalUnit == EIntervalUnit.SECOND && m_nRepeatInterval > secondsInHour)
      {
        throw new SchedulerException ("repeatInterval can not exceed 24 hours (" +
                                      secondsInHour +
                                      " seconds). Given " +
                                      m_nRepeatInterval);
      }
      if (m_eRepeatIntervalUnit == EIntervalUnit.MINUTE && m_nRepeatInterval > secondsInHour / 60L)
      {
        throw new SchedulerException ("repeatInterval can not exceed 24 hours (" +
                                      secondsInHour / 60L +
                                      " minutes). Given " +
                                      m_nRepeatInterval);
      }
      if (m_eRepeatIntervalUnit == EIntervalUnit.HOUR && m_nRepeatInterval > 24)
      {
        throw new SchedulerException ("repeatInterval can not exceed 24 hours. Given " + m_nRepeatInterval + " hours.");
      }
  
      // Ensure timeOfDay is in order.
      if (getEndTimeOfDay () != null && !getStartTimeOfDay ().before (getEndTimeOfDay ()))
      {
        throw new SchedulerException ("StartTimeOfDay " +
                                      m_aStartTimeOfDay +
                                      " should not come after endTimeOfDay " +
                                      m_aEndTimeOfDay);
      }
    }
docs: <p>
  Validates whether the properties of the <code>JobDetail</code> are valid
  for submission into a <code>Scheduler</code>.
  
  @throws IllegalStateException
  if a required property (such as Name, Group, Class) is not set.