code: public void setLocale(Locale locale) {
          if (locale == null) {
              throw new IllegalArgumentException("locale must not be null.");
          }
  
          synchronized (mLock) {
              throwIfNotOpenLocked();
  
              final Locale oldLocale = mConfigurationLocked.locale;
              mConfigurationLocked.locale = locale;
              try {
                  mConnectionPoolLocked.reconfigure(mConfigurationLocked);
              } catch (RuntimeException ex) {
                  mConfigurationLocked.locale = oldLocale;
                  throw ex;
              }
          }
      }
docs: Sets the locale for this database.  Does nothing if this database has
  the {@link #NO_LOCALIZED_COLLATORS} flag set or was opened read only.
  
  @param locale The new locale.
  
  @throws SQLException if the locale could not be set.  The most common reason
  for this is that there is no collator available for the locale you requested.
  In this case the database remains unchanged.