code: public void getCalendarDateFromFixedDate(CalendarDate date,
                                               long fixedDate) {
          Date gdate = (Date) date;
          int year;
          long jan1;
          boolean isLeap;
          if (gdate.hit(fixedDate)) {
              year = gdate.getCachedYear();
              jan1 = gdate.getCachedJan1();
              isLeap = isLeapYear(year);
          } else {
              // Looking up FIXED_DATES[] here didn't improve performance
              // much. So we calculate year and jan1. getFixedDate()
              // will look up FIXED_DATES[] actually.
              year = getGregorianYearFromFixedDate(fixedDate);
              jan1 = getFixedDate(year, JANUARY, 1, null);
              isLeap = isLeapYear(year);
              // Update the cache data
              gdate.setCache (year, jan1, isLeap ? 366 : 365);
          }
  
          int priorDays = (int)(fixedDate - jan1);
          long mar1 = jan1 + 31 + 28;
          if (isLeap) {
              ++mar1;
          }
          if (fixedDate >= mar1) {
              priorDays += isLeap ? 1 : 2;
          }
          int month = 12 * priorDays + 373;
          if (month > 0) {
              month /= 367;
          } else {
              month = CalendarUtils.floorDivide(month, 367);
          }
          long month1 = jan1 + ACCUMULATED_DAYS_IN_MONTH[month];
          if (isLeap && month >= MARCH) {
              ++month1;
          }
          int dayOfMonth = (int)(fixedDate - month1) + 1;
          int dayOfWeek = getDayOfWeekFromFixedDate(fixedDate);
          assert dayOfWeek > 0 : "negative day of week " + dayOfWeek;
          gdate.setNormalizedYear(year);
          gdate.setMonth(month);
          gdate.setDayOfMonth(dayOfMonth);
          gdate.setDayOfWeek(dayOfWeek);
          gdate.setLeapYear(isLeap);
          gdate.setNormalized(true);
      }
docs: should be 'protected'