code: public void setLocale(ULocale locale) {
          /* Save the pattern, and then reapply so that */
          /* we pick up any changes in locale specific */
          /* elements */
          String existingPattern = toPattern();                       /*ibm.3550*/
          this.ulocale = locale;
          // Invalidate all stock formatters. They are no longer valid since
          // the locale has changed.
          stockDateFormatter = null;
          stockNumberFormatter = null;
          pluralProvider = null;
          ordinalProvider = null;
          applyPattern(existingPattern);                              /*ibm.3550*/
      }
docs: Sets the locale to be used for creating argument Format objects.
  This affects subsequent calls to the {@link #applyPattern applyPattern}
  method as well as to the <code>format</code> and
  {@link #formatToCharacterIterator formatToCharacterIterator} methods.
  
  @param locale the locale to be used when creating or comparing subformats