code: public RuleBasedCollator getCollator() {
          if (collatorExternal == null) {
              try {
                  collatorExternal = (RuleBasedCollator) (collatorOriginal.clone());
              } catch (Exception e) {
                  // should never happen
                  throw new IllegalStateException("Collator cannot be cloned", e);
              }
          }
          return collatorExternal;
      }
docs: Get a clone of the collator used internally. Note that for performance reasons, the clone is only done once, and
  then stored. The next time it is accessed, the same instance is returned.
  <p>
  <b><i>Don't use this method across threads if you are changing the settings on the collator, at least not without
  synchronizing.</i></b>
  
  @return a clone of the collator used internally