private long getApplicableFinishTime(AnalyticJob analyticJob) {
    long applicableFinishTime = analyticJob.getFinishTime();
    // Was backfilled with no finish time available at the time. Use value from backfill_info table instead.
    if (analyticJob.getIsBackfilledWithNoFinishTime()) {
      Long backfillTs = _appTypeToBackfillTs.get(analyticJob.getAppType());
      applicableFinishTime = ((backfillTs == null) ? 0 : backfillTs);
    }
    return applicableFinishTime;
  }
Get applicable finish time used while storing in app finish times map. This would typically be the app finish
time for apps fetched from RM. But for backfill jobs, if finish time could not be determined at the time of
fetching jobs for backfill, we will use the backfill ts fetched from backfill_info table instead (0 will be used
if an entry in backfill_info table could not be found as well).

@param analyticJob Job for which applicable finish time needs to be found.
@return applicable finish time.
app/com/linkedin/drelephant/ElephantRunner.java