code: protected void validateField(int field) {
          int y;
          switch (field) {
          case DAY_OF_MONTH:
              y = handleGetExtendedYear();
              validateField(field, 1, handleGetMonthLength(y, internalGet(MONTH)));
              break;
          case DAY_OF_YEAR:
              y = handleGetExtendedYear();
              validateField(field, 1, handleGetYearLength(y));
              break;
          case DAY_OF_WEEK_IN_MONTH:
              if (internalGet(field) == 0) {
                  throw new IllegalArgumentException("DAY_OF_WEEK_IN_MONTH cannot be zero");
              }
              validateField(field, getMinimum(field), getMaximum(field));
              break;
          default:
              validateField(field, getMinimum(field), getMaximum(field));
              break;
          }
      }
docs: Validate a single field of this calendar.  Subclasses should
  override this method to validate any calendar-specific fields.
  Generic fields can be handled by
  <code>Calendar.validateField()</code>.
  @see #validateField(int, int, int)