Index: modules/luni/src/test/java/tests/api/java/util/LocaleTest.java =================================================================== --- modules/luni/src/test/java/tests/api/java/util/LocaleTest.java (revision 422694) +++ modules/luni/src/test/java/tests/api/java/util/LocaleTest.java (working copy) @@ -45,6 +45,23 @@ Locale x = new Locale("xx", "CV", "ZZ"); assertTrue("Failed to create Locale", x.getLanguage().equals("xx") && (x.getCountry().equals("CV") && x.getVariant().equals("ZZ"))); + try { + new Locale(null, "CV", "ZZ"); + fail("expected NullPointerException with 1st parameter == null"); + } catch(NullPointerException e) { + } + + try { + new Locale("xx", null, "ZZ"); + fail("expected NullPointerException with 2nd parameter == null"); + } catch(NullPointerException e) { + } + + try { + new Locale("xx", "CV", null); + fail("expected NullPointerException with 3rd parameter == null"); + } catch(NullPointerException e) { + } } /** Index: modules/luni/src/main/java/java/util/Locale.java =================================================================== --- modules/luni/src/main/java/java/util/Locale.java (revision 422694) +++ modules/luni/src/main/java/java/util/Locale.java (working copy) @@ -221,6 +221,10 @@ languageCode = "ji"; //$NON-NLS-1$ } countryCode = country.toUpperCase(); + + if(variant == null) { + throw new NullPointerException("variant is null"); + } variantCode = variant; }