code: protected final void internalSet(int field, int value) {
          if (((1 << field) & internalSetMask) == 0) {
              throw new IllegalStateException("Subclass cannot set " +
                      fieldName(field));
          }
          fields[field] = value;
          stamp[field] = INTERNALLY_SET;
      }
docs: Set a field to a value.  Subclasses should use this method when
  computing fields.  It sets the time stamp in the
  <code>stamp[]</code> array to <code>INTERNALLY_SET</code>.  If a
  field that may not be set by subclasses is passed in, an
  <code>IllegalArgumentException</code> is thrown.  This prevents
  subclasses from modifying fields that are intended to be
  calendar-system invariant.