Program: 31134
Project: 31134
Buggy source:
public static Interval parseInterval(CharSequence seq,final int pos,int lim) throws NumericException {
  int len=lim - pos - 1;
  int p=pos;
  int year=Numbers.parseInt(seq,p,p+=4);
  boolean l=isLeapYear(year);
  if (p < len) {
    checkChar(seq,p++,lim,'-');
    int month=Numbers.parseInt(seq,p,p+=2);
    checkRange(month,1,12);
    if (p < len) {
      checkChar(seq,p++,lim,'-');
      int day=Numbers.parseInt(seq,p,p+=2);
      checkRange(day,1,getDaysPerMonth(month,l));
      if (p < len) {
        checkChar(seq,p++,lim,'T');
        int hour=Numbers.parseInt(seq,p,p+=2);
        checkRange(hour,0,23);
        if (p < len) {
          checkChar(seq,p++,lim,':');
          int min=Numbers.parseInt(seq,p,p+=2);
          checkRange(min,0,59);
          if (p < len) {
            checkChar(seq,p++,lim,':');
            int sec=Numbers.parseInt(seq,p,p+=2);
            checkRange(sec,0,59);
            if (p < len) {
              throw NumericException.INSTANCE;
            }
 else {
              return new Interval(yearMillis(year,l) + monthOfYearMillis(month,l) + (day - 1) * DAY_MILLIS + hour * HOUR_MILLIS + min * MINUTE_MILLIS + sec * SECOND_MILLIS,yearMillis(year,l) + monthOfYearMillis(month,l) + (day - 1) * DAY_MILLIS + hour * HOUR_MILLIS + min * MINUTE_MILLIS + sec * SECOND_MILLIS + 999);
            }
          }
 else {
            return new Interval(yearMillis(year,l) + monthOfYearMillis(month,l) + (day - 1) * DAY_MILLIS + hour * HOUR_MILLIS + min * MINUTE_MILLIS,yearMillis(year,l) + monthOfYearMillis(month,l) + (day - 1) * DAY_MILLIS + hour * HOUR_MILLIS + min * MINUTE_MILLIS + 59 * SECOND_MILLIS + 999);
          }
        }
 else {
          return new Interval(yearMillis(year,l) + monthOfYearMillis(month,l) + (day - 1) * DAY_MILLIS + hour * HOUR_MILLIS,yearMillis(year,l) + monthOfYearMillis(month,l) + (day - 1) * DAY_MILLIS + hour * HOUR_MILLIS + 59 * MINUTE_MILLIS + 59 * SECOND_MILLIS + 999);
        }
      }
 else {
        return new Interval(yearMillis(year,l) + monthOfYearMillis(month,l) + (day - 1) * DAY_MILLIS,yearMillis(year,l) + monthOfYearMillis(month,l) + +(day - 1) * DAY_MILLIS + 23 * HOUR_MILLIS + 59 * MINUTE_MILLIS + 59 * SECOND_MILLIS + 999);
      }
    }
 else {
      return new Interval(yearMillis(year,l) + monthOfYearMillis(month,l),yearMillis(year,l) + monthOfYearMillis(month,l) + (DAYS_PER_MONTH[month - 1] - 1) * DAY_MILLIS + 23 * HOUR_MILLIS + 59 * MINUTE_MILLIS + 59 * SECOND_MILLIS + 999);
    }
  }
 else {
    return new Interval(yearMillis(year,l) + monthOfYearMillis(1,l),yearMillis(year,l) + monthOfYearMillis(12,l) + (DAYS_PER_MONTH[11] - 1) * DAY_MILLIS + 23 * HOUR_MILLIS + 59 * MINUTE_MILLIS + 59 * SECOND_MILLIS + 999);
  }
}

Fixed version (ground truth):
public static Interval parseInterval(CharSequence seq,final int pos,int lim) throws NumericException {
  int len=lim - pos - 1;
  int p=pos;
  int year=Numbers.parseInt(seq,p,p+=4);
  boolean l=isLeapYear(year);
  if (checkLen(p,len)) {
    checkChar(seq,p++,lim,'-');
    int month=Numbers.parseInt(seq,p,p+=2);
    checkRange(month,1,12);
    if (checkLen(p,len)) {
      checkChar(seq,p++,lim,'-');
      int day=Numbers.parseInt(seq,p,p+=2);
      checkRange(day,1,getDaysPerMonth(month,l));
      if (checkLen(p,len)) {
        checkChar(seq,p++,lim,'T');
        int hour=Numbers.parseInt(seq,p,p+=2);
        checkRange(hour,0,23);
        if (checkLen(p,len)) {
          checkChar(seq,p++,lim,':');
          int min=Numbers.parseInt(seq,p,p+=2);
          checkRange(min,0,59);
          if (checkLen(p,len)) {
            checkChar(seq,p++,lim,':');
            int sec=Numbers.parseInt(seq,p,p+=2);
            checkRange(sec,0,59);
            if (p < len) {
              throw NumericException.INSTANCE;
            }
 else {
              return new Interval(yearMillis(year,l) + monthOfYearMillis(month,l) + (day - 1) * DAY_MILLIS + hour * HOUR_MILLIS + min * MINUTE_MILLIS + sec * SECOND_MILLIS,yearMillis(year,l) + monthOfYearMillis(month,l) + (day - 1) * DAY_MILLIS + hour * HOUR_MILLIS + min * MINUTE_MILLIS + sec * SECOND_MILLIS + 999);
            }
          }
 else {
            return new Interval(yearMillis(year,l) + monthOfYearMillis(month,l) + (day - 1) * DAY_MILLIS + hour * HOUR_MILLIS + min * MINUTE_MILLIS,yearMillis(year,l) + monthOfYearMillis(month,l) + (day - 1) * DAY_MILLIS + hour * HOUR_MILLIS + min * MINUTE_MILLIS + 59 * SECOND_MILLIS + 999);
          }
        }
 else {
          return new Interval(yearMillis(year,l) + monthOfYearMillis(month,l) + (day - 1) * DAY_MILLIS + hour * HOUR_MILLIS,yearMillis(year,l) + monthOfYearMillis(month,l) + (day - 1) * DAY_MILLIS + hour * HOUR_MILLIS + 59 * MINUTE_MILLIS + 59 * SECOND_MILLIS + 999);
        }
      }
 else {
        return new Interval(yearMillis(year,l) + monthOfYearMillis(month,l) + (day - 1) * DAY_MILLIS,yearMillis(year,l) + monthOfYearMillis(month,l) + +(day - 1) * DAY_MILLIS + 23 * HOUR_MILLIS + 59 * MINUTE_MILLIS + 59 * SECOND_MILLIS + 999);
      }
    }
 else {
      return new Interval(yearMillis(year,l) + monthOfYearMillis(month,l),yearMillis(year,l) + monthOfYearMillis(month,l) + (DAYS_PER_MONTH[month - 1] - 1) * DAY_MILLIS + 23 * HOUR_MILLIS + 59 * MINUTE_MILLIS + 59 * SECOND_MILLIS + 999);
    }
  }
 else {
    return new Interval(yearMillis(year,l) + monthOfYearMillis(1,l),yearMillis(year,l) + monthOfYearMillis(12,l) + (DAYS_PER_MONTH[11] - 1) * DAY_MILLIS + 23 * HOUR_MILLIS + 59 * MINUTE_MILLIS + 59 * SECOND_MILLIS + 999);
  }
}