Merge "Fix LocaleTest#testDefaultLocale."
diff --git a/luni/src/main/java/java/lang/System.java b/luni/src/main/java/java/lang/System.java
index 471b35f..8e531c3 100644
--- a/luni/src/main/java/java/lang/System.java
+++ b/luni/src/main/java/java/lang/System.java
@@ -117,9 +117,9 @@
         final String locale = getProperty("user.locale", "");
         if (!locale.isEmpty()) {
             Locale l = Locale.forLanguageTag(locale);
-            initUnchangeableSystemProperty("user.language", l.getLanguage());
-            initUnchangeableSystemProperty("user.region", l.getCountry());
-            initUnchangeableSystemProperty("user.variant", l.getVariant());
+            setUnchangeableSystemProperty("user.language", l.getLanguage());
+            setUnchangeableSystemProperty("user.region", l.getCountry());
+            setUnchangeableSystemProperty("user.variant", l.getVariant());
         } else {
             // If "user.locale" isn't set we fall back to our old defaults of
             // language="en" and region="US" (if unset) and don't attempt to set it.
@@ -129,11 +129,11 @@
             final String region = getProperty("user.region", "");
 
             if (language.isEmpty()) {
-                initUnchangeableSystemProperty("user.language", "en");
+                setUnchangeableSystemProperty("user.language", "en");
             }
 
             if (region.isEmpty()) {
-                initUnchangeableSystemProperty("user.region", "US");
+                setUnchangeableSystemProperty("user.region", "US");
             }
         }
     }
@@ -809,8 +809,10 @@
      *
      * This is called from native code when the environment needs to change under native
      * bridge emulation.
+     *
+     * @hide also visible for tests.
      */
-    private static void initUnchangeableSystemProperty(String name, String value) {
+    public static void setUnchangeableSystemProperty(String name, String value) {
         checkPropertyName(name);
         unchangeableSystemProperties.put(name, value);
     }
diff --git a/luni/src/test/java/libcore/java/util/LocaleTest.java b/luni/src/test/java/libcore/java/util/LocaleTest.java
index c6dd730..e1e84ab 100644
--- a/luni/src/test/java/libcore/java/util/LocaleTest.java
+++ b/luni/src/test/java/libcore/java/util/LocaleTest.java
@@ -1172,18 +1172,18 @@
         final String userLocale = System.getProperty("user.locale", "");
         try {
             // Assert that user.locale gets priority.
-            System.setProperty("user.locale", "de-DE");
-            System.setProperty("user.language", "en");
-            System.setProperty("user.region", "US");
+            System.setUnchangeableSystemProperty("user.locale", "de-DE");
+            System.setUnchangeableSystemProperty("user.language", "en");
+            System.setUnchangeableSystemProperty("user.region", "US");
 
             Locale l = Locale.getDefaultLocaleFromSystemProperties();
             assertEquals("de", l.getLanguage());
             assertEquals("DE", l.getCountry());
 
             // Assert that it's parsed as a full language tag.
-            System.setProperty("user.locale", "de-Latn-DE");
-            System.setProperty("user.language", "en");
-            System.setProperty("user.region", "US");
+            System.setUnchangeableSystemProperty("user.locale", "de-Latn-DE");
+            System.setUnchangeableSystemProperty("user.language", "en");
+            System.setUnchangeableSystemProperty("user.region", "US");
 
             l = Locale.getDefaultLocaleFromSystemProperties();
             assertEquals("de", l.getLanguage());
@@ -1192,15 +1192,15 @@
 
             // Assert that we use "und" if we're faced with a bad language tag, and
             // that we don't end up with a null default locale or an exception.
-            System.setProperty("user.locale", "dexx-Latn-DE");
+            System.setUnchangeableSystemProperty("user.locale", "dexx-Latn-DE");
 
             l = Locale.getDefaultLocaleFromSystemProperties();
             assertEquals("und", l.getLanguage());
             assertEquals("DE", l.getCountry());
         } finally {
-            System.setProperty("user.language", userLanguage);
-            System.setProperty("user.region", userRegion);
-            System.setProperty("user.locale", userLocale);
+            System.setUnchangeableSystemProperty("user.language", userLanguage);
+            System.setUnchangeableSystemProperty("user.region", userRegion);
+            System.setUnchangeableSystemProperty("user.locale", userLocale);
         }
     }
 }