title: Quartz Scheduler getFinalFireTime null even with an expired cron
body: <p>I'm using Quartz Scheduler in Java to schedule jobs based on entries in a database. I'm trying to automate disabling those entries when they will never run again, so I don't try to read them every time the application starts.</p>
  <p>I have a cron for a very specific date, for example <code>0 25 12 4 DEC ? 2021</code>. That is a specific date, it has passed, and cannot ever fire again.</p>
  <p>I build a chrontrigger and check <code>endTrigger.getFinalFireTime()</code> and it returns null, which I believe should only happen when the cron allows future firing.</p>
  <pre><code>// Build the end cron trigger
  CronTrigger endTrigger = TriggerBuilder.newTrigger()
      .withIdentity(&quot;eventEndCron&quot;, &quot;quartzGroup&quot;)
      .withSchedule(CronScheduleBuilder.cronSchedule(&quot;0 25 12 4 DEC ? 2021&quot;))
      .forJob(&quot;eventEnd&quot;, &quot;quartzGroup&quot;)
      .build();
  </code></pre>
  <p>If I try to schedule the job, it throws an error <code>Based on configured schedule, the given trigger 'quartzGroup.eventStartCron' will never fire.</code></p>
  <p>Why isn't <code>getFinalFireTime</code> giving me a date? Is there some other approach I need to use?</p>