* @return the transition array, not null
   */
  private ZoneOffsetTransition[] findTransitionArray(int year) {

    Integer yearObj = year; // should use Year class, but this saves a class load
    ZoneOffsetTransition[] transArray = this.lastRulesCache.get(yearObj);
    if (transArray != null) {
      return transArray;
    }
    ZoneOffsetTransitionRule[] ruleArray = this.lastRules;
    transArray = new ZoneOffsetTransition[ruleArray.length];
    for (int i = 0; i < ruleArray.length; i++) {
      transArray[i] = ruleArray[i].createTransition(year);
    }
    if (year < LAST_CACHED_YEAR) {
      this.lastRulesCache.putIfAbsent(yearObj, transArray);
    }
    return transArray;
  }