mirror of
https://github.com/openjdk/jdk.git
synced 2026-05-12 06:29:37 +00:00
7068662: Reserve and restore the default locale
Reviewed-by: alanb, weijun
This commit is contained in:
parent
d5e142fba4
commit
2ee0410a0c
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2006, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -36,15 +36,19 @@ public class LocaleTest {
|
||||
|
||||
public static void main(String[] args) throws Exception {
|
||||
|
||||
Locale.setDefault(Locale.ITALY);
|
||||
|
||||
Locale reservedLocale = Locale.getDefault();
|
||||
try {
|
||||
Locale.setDefault(Locale.ITALY);
|
||||
|
||||
throw new XMLSecurityException("foo");
|
||||
} catch (XMLSecurityException xse) {
|
||||
System.out.println("Test PASSED");
|
||||
} catch (Throwable t) {
|
||||
System.out.println("Test FAILED");
|
||||
t.printStackTrace();
|
||||
} finally {
|
||||
// restore the reserved locale
|
||||
Locale.setDefault(reservedLocale);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -47,8 +47,14 @@ public class Test6341798 {
|
||||
+ "</java> ";
|
||||
|
||||
public static void main(String[] args) {
|
||||
test(ENGLISH, DATA.getBytes());
|
||||
test(TURKISH, DATA.getBytes());
|
||||
Locale reservedLocale = Locale.getDefault();
|
||||
try {
|
||||
test(ENGLISH, DATA.getBytes());
|
||||
test(TURKISH, DATA.getBytes());
|
||||
} finally {
|
||||
// restore the reserved locale
|
||||
Locale.setDefault(reservedLocale);
|
||||
}
|
||||
}
|
||||
|
||||
private static void test(Locale locale, byte[] data) {
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -32,17 +32,24 @@ import java.util.*;
|
||||
|
||||
public class bug6344646 {
|
||||
public static void main(String[] s) {
|
||||
/* This test is only valid on win32 systems */
|
||||
if (File.separatorChar != '\\') {
|
||||
return;
|
||||
}
|
||||
Locale reservedLocale = Locale.getDefault();
|
||||
try {
|
||||
/* This test is only valid on win32 systems */
|
||||
if (File.separatorChar != '\\') {
|
||||
return;
|
||||
}
|
||||
|
||||
Locale.setDefault(new Locale("lt"));
|
||||
File f1 = new File("J\u0301");
|
||||
File f2 = new File("j\u0301");
|
||||
Locale.setDefault(new Locale("lt"));
|
||||
File f1 = new File("J\u0301");
|
||||
File f2 = new File("j\u0301");
|
||||
|
||||
if (f1.hashCode() != f2.hashCode()) {
|
||||
throw new RuntimeException("File.hashCode() for \"J\u0301\" and \"j\u0301\" should be the same");
|
||||
if (f1.hashCode() != f2.hashCode()) {
|
||||
throw new RuntimeException("File.hashCode() for \"J\u0301\" " +
|
||||
"and \"j\u0301\" should be the same");
|
||||
}
|
||||
} finally {
|
||||
// restore the reserved locale
|
||||
Locale.setDefault(reservedLocale);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -33,16 +33,23 @@ import java.util.Locale;
|
||||
|
||||
public class B6791927 {
|
||||
public static final void main( String[] aaParamters ) throws Exception{
|
||||
// Forces a non US locale
|
||||
Locale.setDefault(Locale.FRANCE);
|
||||
List<HttpCookie> cookies = HttpCookie.parse("set-cookie: CUSTOMER=WILE_E_COYOTE; expires=Wednesday, 09-Nov-2019 23:12:40 GMT");
|
||||
if (cookies == null || cookies.isEmpty()) {
|
||||
throw new RuntimeException("No cookie found");
|
||||
}
|
||||
for (HttpCookie c : cookies) {
|
||||
if (c.getMaxAge() == 0) {
|
||||
throw new RuntimeException("Expiration date shouldn't be 0");
|
||||
Locale reservedLocale = Locale.getDefault();
|
||||
try {
|
||||
// Forces a non US locale
|
||||
Locale.setDefault(Locale.FRANCE);
|
||||
List<HttpCookie> cookies = HttpCookie.parse("set-cookie: CUSTOMER=WILE_E_COYOTE; expires=Wednesday, 09-Nov-2019 23:12:40 GMT");
|
||||
if (cookies == null || cookies.isEmpty()) {
|
||||
throw new RuntimeException("No cookie found");
|
||||
}
|
||||
for (HttpCookie c : cookies) {
|
||||
if (c.getMaxAge() == 0) {
|
||||
throw new RuntimeException(
|
||||
"Expiration date shouldn't be 0");
|
||||
}
|
||||
}
|
||||
} finally {
|
||||
// restore the reserved locale
|
||||
Locale.setDefault(reservedLocale);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -73,6 +73,7 @@ public class SetIfModifiedSince {
|
||||
}
|
||||
|
||||
public static void main (String[] args) {
|
||||
Locale reservedLocale = Locale.getDefault();
|
||||
try {
|
||||
Locale.setDefault(Locale.JAPAN);
|
||||
ServerSocket serversocket = new ServerSocket (0);
|
||||
@ -87,6 +88,10 @@ public class SetIfModifiedSince {
|
||||
int i=0, c;
|
||||
Thread.sleep (5000);
|
||||
} catch (Exception e) {
|
||||
} finally {
|
||||
// restore the reserved locale
|
||||
Locale.setDefault(reservedLocale);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -29,30 +29,37 @@ public class LocaleCategory {
|
||||
private static String enc = null;
|
||||
|
||||
public static void main(String[] args) {
|
||||
Locale.Builder builder = new Locale.Builder();
|
||||
Locale reservedLocale = Locale.getDefault();
|
||||
try {
|
||||
Locale.Builder builder = new Locale.Builder();
|
||||
|
||||
base = builder.setLanguage(System.getProperty("user.language", ""))
|
||||
.setScript(System.getProperty("user.script", ""))
|
||||
.setRegion(System.getProperty("user.country", ""))
|
||||
.setVariant(System.getProperty("user.variant", "")).build();
|
||||
disp = builder.setLanguage(System.getProperty("user.language.display",
|
||||
Locale.getDefault().getLanguage()))
|
||||
.setScript(System.getProperty("user.script.display",
|
||||
Locale.getDefault().getScript()))
|
||||
.setRegion(System.getProperty("user.country.display",
|
||||
Locale.getDefault().getCountry()))
|
||||
.setVariant(System.getProperty("user.variant.display",
|
||||
Locale.getDefault().getVariant())).build();
|
||||
fmt = builder.setLanguage(System.getProperty("user.language.format",
|
||||
Locale.getDefault().getLanguage()))
|
||||
.setScript(System.getProperty("user.script.format",
|
||||
Locale.getDefault().getScript()))
|
||||
.setRegion(System.getProperty("user.country.format",
|
||||
Locale.getDefault().getCountry()))
|
||||
.setVariant(System.getProperty("user.variant.format",
|
||||
Locale.getDefault().getVariant())).build();
|
||||
checkDefault();
|
||||
testGetSetDefault();
|
||||
base = builder.setLanguage(System.getProperty("user.language", ""))
|
||||
.setScript(System.getProperty("user.script", ""))
|
||||
.setRegion(System.getProperty("user.country", ""))
|
||||
.setVariant(System.getProperty("user.variant", "")).build();
|
||||
disp = builder.setLanguage(
|
||||
System.getProperty("user.language.display",
|
||||
Locale.getDefault().getLanguage()))
|
||||
.setScript(System.getProperty("user.script.display",
|
||||
Locale.getDefault().getScript()))
|
||||
.setRegion(System.getProperty("user.country.display",
|
||||
Locale.getDefault().getCountry()))
|
||||
.setVariant(System.getProperty("user.variant.display",
|
||||
Locale.getDefault().getVariant())).build();
|
||||
fmt = builder.setLanguage(System.getProperty("user.language.format",
|
||||
Locale.getDefault().getLanguage()))
|
||||
.setScript(System.getProperty("user.script.format",
|
||||
Locale.getDefault().getScript()))
|
||||
.setRegion(System.getProperty("user.country.format",
|
||||
Locale.getDefault().getCountry()))
|
||||
.setVariant(System.getProperty("user.variant.format",
|
||||
Locale.getDefault().getVariant())).build();
|
||||
checkDefault();
|
||||
testGetSetDefault();
|
||||
} finally {
|
||||
// restore the reserved locale
|
||||
Locale.setDefault(reservedLocale);
|
||||
}
|
||||
}
|
||||
|
||||
static void checkDefault() {
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2007, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -32,7 +32,13 @@ import sun.util.resources.*;
|
||||
public class CurrencyNameProviderTest extends ProviderTest {
|
||||
|
||||
public static void main(String[] s) {
|
||||
new CurrencyNameProviderTest();
|
||||
Locale reservedLocale = Locale.getDefault();
|
||||
try {
|
||||
new CurrencyNameProviderTest();
|
||||
} finally {
|
||||
// restore the reserved locale
|
||||
Locale.setDefault(reservedLocale);
|
||||
}
|
||||
}
|
||||
|
||||
CurrencyNameProviderTest() {
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2007, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -113,6 +113,7 @@ public class TimeZoneNameProviderTest extends ProviderTest {
|
||||
|
||||
void test2() {
|
||||
Locale defaultLocale = Locale.getDefault();
|
||||
TimeZone reservedTimeZone = TimeZone.getDefault();
|
||||
Date d = new Date(2005-1900, Calendar.DECEMBER, 22);
|
||||
String formatted;
|
||||
|
||||
@ -139,7 +140,6 @@ public class TimeZoneNameProviderTest extends ProviderTest {
|
||||
df = new SimpleDateFormat(pattern, DateFormatSymbols.getInstance());
|
||||
System.out.println(formatted = df.format(d));
|
||||
if(!formatted.equals(DISPLAY_NAMES_KYOTO[i])) {
|
||||
Locale.setDefault(defaultLocale);
|
||||
throw new RuntimeException("Timezone " + TIMEZONES[i] +
|
||||
": formatted zone names mismatch. " +
|
||||
formatted + " should match with " +
|
||||
@ -148,10 +148,12 @@ public class TimeZoneNameProviderTest extends ProviderTest {
|
||||
df.parse(DISPLAY_NAMES_KYOTO[i]);
|
||||
}
|
||||
} catch (ParseException pe) {
|
||||
Locale.setDefault(defaultLocale);
|
||||
throw new RuntimeException("parse error occured" + pe);
|
||||
} finally {
|
||||
// restore the reserved locale and time zone
|
||||
Locale.setDefault(defaultLocale);
|
||||
TimeZone.setDefault(reservedTimeZone);
|
||||
}
|
||||
Locale.setDefault(defaultLocale);
|
||||
}
|
||||
|
||||
final String LATIME = "America/Los_Angeles";
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2007, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -32,27 +32,34 @@ import java.util.*;
|
||||
public class Bug6190861 {
|
||||
|
||||
static public void main(String[] args) {
|
||||
Locale.setDefault(new Locale("en", "US"));
|
||||
Locale reservedLocale = Locale.getDefault();
|
||||
try {
|
||||
Locale.setDefault(new Locale("en", "US"));
|
||||
|
||||
List localeList = new ArrayList();
|
||||
localeList.add(Locale.ENGLISH);
|
||||
localeList.add(Locale.KOREA);
|
||||
localeList.add(Locale.UK);
|
||||
localeList.add(new Locale("en", "CA"));
|
||||
localeList.add(Locale.ENGLISH);
|
||||
List localeList = new ArrayList();
|
||||
localeList.add(Locale.ENGLISH);
|
||||
localeList.add(Locale.KOREA);
|
||||
localeList.add(Locale.UK);
|
||||
localeList.add(new Locale("en", "CA"));
|
||||
localeList.add(Locale.ENGLISH);
|
||||
|
||||
Iterator iter = localeList.iterator();
|
||||
while (iter.hasNext()){
|
||||
Locale currentLocale = (Locale) iter.next();
|
||||
System.out.println("\ncurrentLocale = "
|
||||
Iterator iter = localeList.iterator();
|
||||
while (iter.hasNext()){
|
||||
Locale currentLocale = (Locale) iter.next();
|
||||
System.out.println("\ncurrentLocale = "
|
||||
+ currentLocale.getDisplayName());
|
||||
|
||||
ResourceBundle messages = ResourceBundle.getBundle("Bug6190861Data",currentLocale);
|
||||
ResourceBundle messages =
|
||||
ResourceBundle.getBundle("Bug6190861Data",currentLocale);
|
||||
|
||||
Locale messagesLocale = messages.getLocale();
|
||||
System.out.println("messagesLocale = "
|
||||
Locale messagesLocale = messages.getLocale();
|
||||
System.out.println("messagesLocale = "
|
||||
+ messagesLocale.getDisplayName());
|
||||
checkMessages(messages);
|
||||
checkMessages(messages);
|
||||
}
|
||||
} finally {
|
||||
// restore the reserved locale
|
||||
Locale.setDefault(reservedLocale);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2007, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -43,6 +43,12 @@ public class Bug6530694 {
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
new Bug6530694();
|
||||
Locale reservedLocale = Locale.getDefault();
|
||||
try {
|
||||
new Bug6530694();
|
||||
} finally {
|
||||
// restore the reserved locale
|
||||
Locale.setDefault(reservedLocale);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -69,36 +69,44 @@ public class StressTest {
|
||||
if (args.length > 1) {
|
||||
duration = Math.max(5, Integer.parseInt(args[1]));
|
||||
}
|
||||
Locale.setDefault(Locale.US);
|
||||
Thread[] tasks = new Thread[locales.length * threadsFactor];
|
||||
counters = new AtomicIntegerArray(tasks.length);
|
||||
|
||||
for (int i = 0; i < tasks.length; i++) {
|
||||
tasks[i] = new Thread(new Worker(i));
|
||||
}
|
||||
for (int i = 0; i < tasks.length; i++) {
|
||||
tasks[i].start();
|
||||
}
|
||||
|
||||
int nProcessors = Runtime.getRuntime().availableProcessors();
|
||||
intervalForCounterCheck = Math.max(tasks.length / nProcessors, 1);
|
||||
System.out.printf("%d processors, intervalForCounterCheck = %d [sec]%n",
|
||||
nProcessors, intervalForCounterCheck);
|
||||
Locale reservedLocale = Locale.getDefault();
|
||||
try {
|
||||
for (int i = 0; runrun && i < duration; i++) {
|
||||
Thread.sleep(1000); // 1 second
|
||||
if ((i % intervalForCounterCheck) == 0) {
|
||||
checkCounters();
|
||||
}
|
||||
}
|
||||
runrun = false;
|
||||
for (int i = 0; i < tasks.length; i++) {
|
||||
tasks[i].join();
|
||||
}
|
||||
} catch (InterruptedException e) {
|
||||
}
|
||||
Locale.setDefault(Locale.US);
|
||||
Thread[] tasks = new Thread[locales.length * threadsFactor];
|
||||
counters = new AtomicIntegerArray(tasks.length);
|
||||
|
||||
printCounters();
|
||||
for (int i = 0; i < tasks.length; i++) {
|
||||
tasks[i] = new Thread(new Worker(i));
|
||||
}
|
||||
for (int i = 0; i < tasks.length; i++) {
|
||||
tasks[i].start();
|
||||
}
|
||||
|
||||
int nProcessors = Runtime.getRuntime().availableProcessors();
|
||||
intervalForCounterCheck = Math.max(tasks.length / nProcessors, 1);
|
||||
System.out.printf(
|
||||
"%d processors, intervalForCounterCheck = %d [sec]%n",
|
||||
nProcessors, intervalForCounterCheck);
|
||||
try {
|
||||
for (int i = 0; runrun && i < duration; i++) {
|
||||
Thread.sleep(1000); // 1 second
|
||||
if ((i % intervalForCounterCheck) == 0) {
|
||||
checkCounters();
|
||||
}
|
||||
}
|
||||
runrun = false;
|
||||
for (int i = 0; i < tasks.length; i++) {
|
||||
tasks[i].join();
|
||||
}
|
||||
} catch (InterruptedException e) {
|
||||
}
|
||||
|
||||
printCounters();
|
||||
} finally {
|
||||
// restore the reserved locale
|
||||
Locale.setDefault(reservedLocale);
|
||||
}
|
||||
}
|
||||
|
||||
static void checkCounters() {
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2007, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -35,8 +35,14 @@ import java.util.MissingResourceException;
|
||||
public class Test4314141 {
|
||||
|
||||
public static void main(String[] args) {
|
||||
testCandidateOmission();
|
||||
testExample();
|
||||
Locale reservedLocale = Locale.getDefault();
|
||||
try {
|
||||
testCandidateOmission();
|
||||
testExample();
|
||||
} finally {
|
||||
// restore the reserved locale
|
||||
Locale.setDefault(reservedLocale);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2007, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -36,8 +36,14 @@ import java.util.Locale;
|
||||
public class Test4318520 {
|
||||
|
||||
public static void main(String[] args) {
|
||||
test(Locale.GERMAN);
|
||||
test(Locale.ENGLISH);
|
||||
Locale reservedLocale = Locale.getDefault();
|
||||
try {
|
||||
test(Locale.GERMAN);
|
||||
test(Locale.ENGLISH);
|
||||
} finally {
|
||||
// restore the reserved locale
|
||||
Locale.setDefault(reservedLocale);
|
||||
}
|
||||
}
|
||||
|
||||
private static void test(Locale locale) {
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -26,7 +26,6 @@
|
||||
* @bug 4624534
|
||||
* @summary Make sure jar certificates work for Turkish locale
|
||||
* @author kladko
|
||||
* @run main/othervm TurkCert
|
||||
*/
|
||||
|
||||
import java.util.*;
|
||||
@ -36,15 +35,24 @@ import java.io.*;
|
||||
|
||||
public class TurkCert {
|
||||
public static void main(String[] args) throws Exception{
|
||||
Locale.setDefault(new Locale("TR", "tr"));
|
||||
File f = new File(System.getProperty("test.src","."), "test.jar");
|
||||
JarFile jf = new JarFile(f, true);
|
||||
JarEntry je = (JarEntry)jf.getEntry("test.class");
|
||||
InputStream is = jf.getInputStream(je);
|
||||
byte[] b = new byte[1024];
|
||||
while (is.read(b) != -1) {
|
||||
Locale reservedLocale = Locale.getDefault();
|
||||
try {
|
||||
Locale.setDefault(new Locale("TR", "tr"));
|
||||
File f = new File(System.getProperty("test.src","."), "test.jar");
|
||||
try (JarFile jf = new JarFile(f, true)) {
|
||||
JarEntry je = (JarEntry)jf.getEntry("test.class");
|
||||
try (InputStream is = jf.getInputStream(je)) {
|
||||
byte[] b = new byte[1024];
|
||||
while (is.read(b) != -1) {
|
||||
}
|
||||
}
|
||||
if (je.getCertificates() == null) {
|
||||
throw new Exception("Null certificate for test.class.");
|
||||
}
|
||||
}
|
||||
} finally {
|
||||
// restore the default locale
|
||||
Locale.setDefault(reservedLocale);
|
||||
}
|
||||
if (je.getCertificates() == null)
|
||||
throw new Exception("Null certificate for test.class.");
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2007, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -35,15 +35,21 @@ import javax.crypto.Cipher;
|
||||
public class Turkish {
|
||||
|
||||
public static void main(String[] args) throws Exception {
|
||||
Locale.setDefault(new Locale("tr", "TR"));
|
||||
Locale reservedLocale = Locale.getDefault();
|
||||
try {
|
||||
Locale.setDefault(new Locale("tr", "TR"));
|
||||
|
||||
System.out.println(Cipher.getInstance("RSA/ECB/PKCS1Padding"));
|
||||
System.out.println(Cipher.getInstance("RSA/ECB/PKCS1PADDING"));
|
||||
System.out.println(Cipher.getInstance("rsa/ecb/pkcs1padding"));
|
||||
System.out.println(Cipher.getInstance("Blowfish"));
|
||||
System.out.println(Cipher.getInstance("blowfish"));
|
||||
System.out.println(Cipher.getInstance("BLOWFISH"));
|
||||
System.out.println(Cipher.getInstance("RSA/ECB/PKCS1Padding"));
|
||||
System.out.println(Cipher.getInstance("RSA/ECB/PKCS1PADDING"));
|
||||
System.out.println(Cipher.getInstance("rsa/ecb/pkcs1padding"));
|
||||
System.out.println(Cipher.getInstance("Blowfish"));
|
||||
System.out.println(Cipher.getInstance("blowfish"));
|
||||
System.out.println(Cipher.getInstance("BLOWFISH"));
|
||||
|
||||
System.out.println("OK");
|
||||
System.out.println("OK");
|
||||
} finally {
|
||||
// restore the default locale
|
||||
Locale.setDefault(reservedLocale);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2007, 2008, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2007, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -98,17 +98,23 @@ public class Test6524757 {
|
||||
private static final Object[] FRENCH = convert(Locale.FRENCH, KEYS);
|
||||
|
||||
public static void main(String[] args) {
|
||||
// it affects Swing because it is not initialized
|
||||
Locale.setDefault(Locale.KOREAN);
|
||||
validate(KOREAN, create());
|
||||
Locale reservedLocale = Locale.getDefault();
|
||||
try {
|
||||
// it affects Swing because it is not initialized
|
||||
Locale.setDefault(Locale.KOREAN);
|
||||
validate(KOREAN, create());
|
||||
|
||||
// it does not affect Swing because it is initialized
|
||||
Locale.setDefault(Locale.CANADA);
|
||||
validate(KOREAN, create());
|
||||
// it does not affect Swing because it is initialized
|
||||
Locale.setDefault(Locale.CANADA);
|
||||
validate(KOREAN, create());
|
||||
|
||||
// it definitely should affect Swing
|
||||
JComponent.setDefaultLocale(Locale.FRENCH);
|
||||
validate(FRENCH, create());
|
||||
// it definitely should affect Swing
|
||||
JComponent.setDefaultLocale(Locale.FRENCH);
|
||||
validate(FRENCH, create());
|
||||
} finally {
|
||||
// restore the reserved locale
|
||||
Locale.setDefault(reservedLocale);
|
||||
}
|
||||
}
|
||||
|
||||
private static void validate(Object[] expected, Object[] actual) {
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2009, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -1278,52 +1278,58 @@ public class KeyToolTest {
|
||||
}
|
||||
|
||||
public static void main(String[] args) throws Exception {
|
||||
// first test if HumanInputStream really acts like a human being
|
||||
HumanInputStream.test();
|
||||
KeyToolTest t = new KeyToolTest();
|
||||
Locale reservedLocale = Locale.getDefault();
|
||||
try {
|
||||
// first test if HumanInputStream really acts like a human being
|
||||
HumanInputStream.test();
|
||||
KeyToolTest t = new KeyToolTest();
|
||||
|
||||
if (System.getProperty("file") != null) {
|
||||
t.sqeTest();
|
||||
t.testAll();
|
||||
t.i18nTest();
|
||||
t.v3extTest("RSA");
|
||||
t.v3extTest("DSA");
|
||||
boolean testEC = true;
|
||||
try {
|
||||
KeyPairGenerator.getInstance("EC");
|
||||
} catch (NoSuchAlgorithmException nae) {
|
||||
testEC = false;
|
||||
if (System.getProperty("file") != null) {
|
||||
t.sqeTest();
|
||||
t.testAll();
|
||||
t.i18nTest();
|
||||
t.v3extTest("RSA");
|
||||
t.v3extTest("DSA");
|
||||
boolean testEC = true;
|
||||
try {
|
||||
KeyPairGenerator.getInstance("EC");
|
||||
} catch (NoSuchAlgorithmException nae) {
|
||||
testEC = false;
|
||||
}
|
||||
if (testEC) t.v3extTest("EC");
|
||||
}
|
||||
if (testEC) t.v3extTest("EC");
|
||||
|
||||
if (System.getProperty("nss") != null) {
|
||||
t.srcP11Arg = NSS_SRC_P11_ARG;
|
||||
t.p11Arg = NSS_P11_ARG;
|
||||
|
||||
t.testPKCS11();
|
||||
|
||||
// FAIL:
|
||||
// 1. we still don't have srcprovidername yet
|
||||
// 2. cannot store privatekey into NSS keystore
|
||||
// java.security.KeyStoreException: sun.security.pkcs11.wrapper.PKCS11Exception: CKR_TEMPLATE_INCOMPLETE.
|
||||
//t.testPKCS11ImportKeyStore();
|
||||
|
||||
t.i18nPKCS11Test();
|
||||
//FAIL: currently PKCS11-NSS does not support 2 NSS KeyStores to be loaded at the same time
|
||||
//t.sszzTest();
|
||||
}
|
||||
|
||||
if (System.getProperty("solaris") != null) {
|
||||
// For Solaris Cryptography Framework
|
||||
t.srcP11Arg = SUN_SRC_P11_ARG;
|
||||
t.p11Arg = SUN_P11_ARG;
|
||||
t.testPKCS11();
|
||||
t.testPKCS11ImportKeyStore();
|
||||
t.i18nPKCS11Test();
|
||||
}
|
||||
|
||||
System.out.println("Test pass!!!");
|
||||
} finally {
|
||||
// restore the reserved locale
|
||||
Locale.setDefault(reservedLocale);
|
||||
}
|
||||
|
||||
if (System.getProperty("nss") != null) {
|
||||
t.srcP11Arg = NSS_SRC_P11_ARG;
|
||||
t.p11Arg = NSS_P11_ARG;
|
||||
|
||||
t.testPKCS11();
|
||||
|
||||
// FAIL:
|
||||
// 1. we still don't have srcprovidername yet
|
||||
// 2. cannot store privatekey into NSS keystore
|
||||
// java.security.KeyStoreException: sun.security.pkcs11.wrapper.PKCS11Exception: CKR_TEMPLATE_INCOMPLETE.
|
||||
//t.testPKCS11ImportKeyStore();
|
||||
|
||||
t.i18nPKCS11Test();
|
||||
//FAIL: currently PKCS11-NSS does not support 2 NSS KeyStores to be loaded at the same time
|
||||
//t.sszzTest();
|
||||
}
|
||||
|
||||
if (System.getProperty("solaris") != null) {
|
||||
// For Solaris Cryptography Framework
|
||||
t.srcP11Arg = SUN_SRC_P11_ARG;
|
||||
t.p11Arg = SUN_P11_ARG;
|
||||
t.testPKCS11();
|
||||
t.testPKCS11ImportKeyStore();
|
||||
t.i18nPKCS11Test();
|
||||
}
|
||||
|
||||
System.out.println("Test pass!!!");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2007, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -35,43 +35,49 @@ public class Bug4248694 {
|
||||
/********************************************************
|
||||
*********************************************************/
|
||||
public static void main (String[] args) {
|
||||
int errors=0;
|
||||
Locale reservedLocale = Locale.getDefault();
|
||||
try {
|
||||
int errors=0;
|
||||
|
||||
Locale loc = new Locale ("is", "is"); // Icelandic
|
||||
Locale loc = new Locale ("is", "is"); // Icelandic
|
||||
|
||||
Locale.setDefault (loc);
|
||||
Collator col = Collator.getInstance ();
|
||||
Locale.setDefault (loc);
|
||||
Collator col = Collator.getInstance ();
|
||||
|
||||
String[] data = {"\u00e6ard",
|
||||
"Zard",
|
||||
"aard",
|
||||
"\u00feard",
|
||||
"vird",
|
||||
"\u00c6ard",
|
||||
"Zerd",
|
||||
"\u00deard"};
|
||||
String[] data = {"\u00e6ard",
|
||||
"Zard",
|
||||
"aard",
|
||||
"\u00feard",
|
||||
"vird",
|
||||
"\u00c6ard",
|
||||
"Zerd",
|
||||
"\u00deard"};
|
||||
|
||||
String[] sortedData = {"aard",
|
||||
"vird",
|
||||
"Zard",
|
||||
"Zerd",
|
||||
"\u00feard",
|
||||
"\u00deard",
|
||||
"\u00e6ard",
|
||||
"\u00c6ard"};
|
||||
String[] sortedData = {"aard",
|
||||
"vird",
|
||||
"Zard",
|
||||
"Zerd",
|
||||
"\u00feard",
|
||||
"\u00deard",
|
||||
"\u00e6ard",
|
||||
"\u00c6ard"};
|
||||
|
||||
Arrays.sort (data, col);
|
||||
Arrays.sort (data, col);
|
||||
|
||||
System.out.println ("Using " + loc.getDisplayName());
|
||||
for (int i = 0; i < data.length; i++) {
|
||||
System.out.println(data[i] + " : " + sortedData[i]);
|
||||
if (sortedData[i].compareTo(data[i]) != 0) {
|
||||
errors++;
|
||||
}
|
||||
}//end for
|
||||
System.out.println ("Using " + loc.getDisplayName());
|
||||
for (int i = 0; i < data.length; i++) {
|
||||
System.out.println(data[i] + " : " + sortedData[i]);
|
||||
if (sortedData[i].compareTo(data[i]) != 0) {
|
||||
errors++;
|
||||
}
|
||||
}//end for
|
||||
|
||||
if (errors > 0)
|
||||
throw new RuntimeException();
|
||||
if (errors > 0)
|
||||
throw new RuntimeException();
|
||||
} finally {
|
||||
// restore the reserved locale
|
||||
Locale.setDefault(reservedLocale);
|
||||
}
|
||||
}//end main
|
||||
|
||||
}//end class CollatorTest
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2007, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -35,82 +35,89 @@ public class Bug4804273 {
|
||||
/********************************************************
|
||||
*********************************************************/
|
||||
public static void main (String[] args) {
|
||||
int errors=0;
|
||||
Locale reservedLocale = Locale.getDefault();
|
||||
try {
|
||||
int errors=0;
|
||||
|
||||
Locale loc = new Locale ("sv", "se"); // Swedish
|
||||
Locale loc = new Locale ("sv", "se"); // Swedish
|
||||
|
||||
Locale.setDefault (loc);
|
||||
Collator col = Collator.getInstance ();
|
||||
Locale.setDefault (loc);
|
||||
Collator col = Collator.getInstance ();
|
||||
|
||||
String[] data = {"A",
|
||||
"Aa",
|
||||
"Ae",
|
||||
"B",
|
||||
"Y",
|
||||
"U\u0308", // U-umlaut
|
||||
"Z",
|
||||
"A\u030a", // A-ring
|
||||
"A\u0308", // A-umlaut
|
||||
"\u00c6", // AE ligature
|
||||
"O\u0308", // O-umlaut
|
||||
"a\u030b", // a-double-acute
|
||||
"\u00d8", // O-stroke
|
||||
"a",
|
||||
"aa",
|
||||
"ae",
|
||||
"b",
|
||||
"y",
|
||||
"u\u0308", // u-umlaut
|
||||
"z",
|
||||
"A\u030b", // A-double-acute
|
||||
"a\u030a", // a-ring
|
||||
"a\u0308", // a-umlaut
|
||||
"\u00e6", // ae ligature
|
||||
"o\u0308", // o-umlaut
|
||||
"\u00f8", // o-stroke
|
||||
};
|
||||
String[] data = {"A",
|
||||
"Aa",
|
||||
"Ae",
|
||||
"B",
|
||||
"Y",
|
||||
"U\u0308", // U-umlaut
|
||||
"Z",
|
||||
"A\u030a", // A-ring
|
||||
"A\u0308", // A-umlaut
|
||||
"\u00c6", // AE ligature
|
||||
"O\u0308", // O-umlaut
|
||||
"a\u030b", // a-double-acute
|
||||
"\u00d8", // O-stroke
|
||||
"a",
|
||||
"aa",
|
||||
"ae",
|
||||
"b",
|
||||
"y",
|
||||
"u\u0308", // u-umlaut
|
||||
"z",
|
||||
"A\u030b", // A-double-acute
|
||||
"a\u030a", // a-ring
|
||||
"a\u0308", // a-umlaut
|
||||
"\u00e6", // ae ligature
|
||||
"o\u0308", // o-umlaut
|
||||
"\u00f8", // o-stroke
|
||||
};
|
||||
|
||||
|
||||
String[] sortedData = {"a",
|
||||
"A",
|
||||
"aa",
|
||||
"Aa",
|
||||
"ae",
|
||||
"Ae",
|
||||
"b",
|
||||
"B",
|
||||
"y",
|
||||
"Y",
|
||||
"u\u0308", // o-umlaut
|
||||
"U\u0308", // o-umlaut
|
||||
"z",
|
||||
"Z",
|
||||
"a\u030a", // a-ring
|
||||
"A\u030a", // A-ring
|
||||
"a\u0308", // a-umlaut
|
||||
"A\u0308", // A-umlaut
|
||||
"a\u030b", // a-double-acute
|
||||
"A\u030b", // A-double-acute
|
||||
"\u00e6", // ae ligature
|
||||
"\u00c6", // AE ligature
|
||||
"o\u0308", // o-umlaut
|
||||
"O\u0308", // O-umlaut
|
||||
"\u00f8", // o-stroke
|
||||
"\u00d8", // O-stroke
|
||||
};
|
||||
String[] sortedData = {"a",
|
||||
"A",
|
||||
"aa",
|
||||
"Aa",
|
||||
"ae",
|
||||
"Ae",
|
||||
"b",
|
||||
"B",
|
||||
"y",
|
||||
"Y",
|
||||
"u\u0308", // o-umlaut
|
||||
"U\u0308", // o-umlaut
|
||||
"z",
|
||||
"Z",
|
||||
"a\u030a", // a-ring
|
||||
"A\u030a", // A-ring
|
||||
"a\u0308", // a-umlaut
|
||||
"A\u0308", // A-umlaut
|
||||
"a\u030b", // a-double-acute
|
||||
"A\u030b", // A-double-acute
|
||||
"\u00e6", // ae ligature
|
||||
"\u00c6", // AE ligature
|
||||
"o\u0308", // o-umlaut
|
||||
"O\u0308", // O-umlaut
|
||||
"\u00f8", // o-stroke
|
||||
"\u00d8", // O-stroke
|
||||
};
|
||||
|
||||
Arrays.sort (data, col);
|
||||
Arrays.sort (data, col);
|
||||
|
||||
System.out.println ("Using " + loc.getDisplayName());
|
||||
for (int i = 0; i < data.length; i++) {
|
||||
System.out.println(data[i] + " : " + sortedData[i]);
|
||||
if (sortedData[i].compareTo(data[i]) != 0) {
|
||||
errors++;
|
||||
}
|
||||
}//end for
|
||||
System.out.println ("Using " + loc.getDisplayName());
|
||||
for (int i = 0; i < data.length; i++) {
|
||||
System.out.println(data[i] + " : " + sortedData[i]);
|
||||
if (sortedData[i].compareTo(data[i]) != 0) {
|
||||
errors++;
|
||||
}
|
||||
}//end for
|
||||
|
||||
if (errors > 0)
|
||||
throw new RuntimeException("There are " + errors + " words sorted incorrectly!");
|
||||
if (errors > 0)
|
||||
throw new RuntimeException("There are " + errors +
|
||||
" words sorted incorrectly!");
|
||||
} finally {
|
||||
// restore the reserved locale
|
||||
Locale.setDefault(reservedLocale);
|
||||
}
|
||||
}//end main
|
||||
|
||||
}//end class CollatorTest
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2007, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -35,39 +35,44 @@ public class Bug4848897 {
|
||||
/********************************************************
|
||||
*********************************************************/
|
||||
public static void main (String[] args) {
|
||||
Locale reservedLocale = Locale.getDefault();
|
||||
try {
|
||||
int errors=0;
|
||||
Locale loc = new Locale ("no", "NO"); // Norwegian
|
||||
|
||||
int errors=0;
|
||||
Locale loc = new Locale ("no", "NO"); // Norwegian
|
||||
Locale.setDefault (loc);
|
||||
Collator col = Collator.getInstance ();
|
||||
|
||||
Locale.setDefault (loc);
|
||||
Collator col = Collator.getInstance ();
|
||||
String[] data = {"wird",
|
||||
"vird",
|
||||
"verd",
|
||||
"werd",
|
||||
"vard",
|
||||
"ward"};
|
||||
|
||||
String[] data = {"wird",
|
||||
"vird",
|
||||
"verd",
|
||||
"werd",
|
||||
"vard",
|
||||
"ward"};
|
||||
String[] sortedData = {"vard",
|
||||
"verd",
|
||||
"vird",
|
||||
"ward",
|
||||
"werd",
|
||||
"wird"};
|
||||
|
||||
String[] sortedData = {"vard",
|
||||
"verd",
|
||||
"vird",
|
||||
"ward",
|
||||
"werd",
|
||||
"wird"};
|
||||
Arrays.sort (data, col);
|
||||
|
||||
Arrays.sort (data, col);
|
||||
System.out.println ("Using " + loc.getDisplayName());
|
||||
for (int i = 0; i < data.length; i++) {
|
||||
System.out.println(data[i] + " : " + sortedData[i]);
|
||||
if (sortedData[i].compareTo(data[i]) != 0) {
|
||||
errors++;
|
||||
}
|
||||
}//end for
|
||||
|
||||
System.out.println ("Using " + loc.getDisplayName());
|
||||
for (int i = 0; i < data.length; i++) {
|
||||
System.out.println(data[i] + " : " + sortedData[i]);
|
||||
if (sortedData[i].compareTo(data[i]) != 0) {
|
||||
errors++;
|
||||
}
|
||||
}//end for
|
||||
|
||||
if (errors > 0)
|
||||
throw new RuntimeException();
|
||||
}//end main
|
||||
if (errors > 0)
|
||||
throw new RuntimeException();
|
||||
} finally {
|
||||
// restore the reserved locale
|
||||
Locale.setDefault(reservedLocale);
|
||||
}
|
||||
} // end main
|
||||
|
||||
}//end class CollatorTest
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2007, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -34,23 +34,29 @@ import java.util.Locale;
|
||||
public class Bug4651568 {
|
||||
|
||||
public static void main (String argv[] ) {
|
||||
String expectedCurrencyPattern = "\u00A4 #.##0,00";
|
||||
Locale reservedLocale = Locale.getDefault();
|
||||
try {
|
||||
String expectedCurrencyPattern = "\u00A4 #.##0,00";
|
||||
|
||||
Locale locale = new Locale ("pt", "BR");
|
||||
Locale.setDefault(locale);
|
||||
Locale locale = new Locale ("pt", "BR");
|
||||
Locale.setDefault(locale);
|
||||
|
||||
DecimalFormat formatter =
|
||||
(DecimalFormat) NumberFormat.getCurrencyInstance(locale);
|
||||
DecimalFormat formatter =
|
||||
(DecimalFormat) NumberFormat.getCurrencyInstance(locale);
|
||||
|
||||
if (formatter.toLocalizedPattern().equals(expectedCurrencyPattern))
|
||||
{
|
||||
System.out.println ("Passed.");
|
||||
} else {
|
||||
System.out.println ("Failed Currency pattern." +
|
||||
" Expected: " + expectedCurrencyPattern +
|
||||
" Received: " + formatter.toLocalizedPattern() );
|
||||
throw new RuntimeException();
|
||||
if (formatter.toLocalizedPattern().equals(
|
||||
expectedCurrencyPattern)) {
|
||||
System.out.println ("Passed.");
|
||||
} else {
|
||||
System.out.println ("Failed Currency pattern." +
|
||||
" Expected: " + expectedCurrencyPattern +
|
||||
" Received: " + formatter.toLocalizedPattern() );
|
||||
throw new RuntimeException();
|
||||
|
||||
}
|
||||
}
|
||||
} finally {
|
||||
// restore the reserved locale
|
||||
Locale.setDefault(reservedLocale);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2007, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -30,49 +30,55 @@ import java.util.Locale;
|
||||
|
||||
public class Bug4965260 {
|
||||
|
||||
// Define supported locales
|
||||
static Locale[] locales2Test = new Locale[] {
|
||||
new Locale("de"),
|
||||
new Locale("es"),
|
||||
new Locale("fr"),
|
||||
new Locale("it"),
|
||||
new Locale("sv")
|
||||
};
|
||||
// Define supported locales
|
||||
static Locale[] locales2Test = new Locale[] {
|
||||
new Locale("de"),
|
||||
new Locale("es"),
|
||||
new Locale("fr"),
|
||||
new Locale("it"),
|
||||
new Locale("sv")
|
||||
};
|
||||
|
||||
static String[] expectedNames = new String[] {
|
||||
"Niederl\u00e4ndisch",
|
||||
"neerland\u00e9s",
|
||||
"n\u00e9erlandais",
|
||||
"neerlandese",
|
||||
"nederl\u00e4ndska"
|
||||
};
|
||||
static String[] expectedNames = new String[] {
|
||||
"Niederl\u00e4ndisch",
|
||||
"neerland\u00e9s",
|
||||
"n\u00e9erlandais",
|
||||
"neerlandese",
|
||||
"nederl\u00e4ndska"
|
||||
};
|
||||
|
||||
public static void main(String[] args) throws Exception {
|
||||
Locale.setDefault(Locale.ENGLISH);
|
||||
if (locales2Test.length != expectedNames.length) {
|
||||
throw new Exception("\nData sizes does not match!\n");
|
||||
public static void main(String[] args) throws Exception {
|
||||
Locale reservedLocale = Locale.getDefault();
|
||||
try {
|
||||
Locale.setDefault(Locale.ENGLISH);
|
||||
if (locales2Test.length != expectedNames.length) {
|
||||
throw new Exception("\nData sizes does not match!\n");
|
||||
}
|
||||
|
||||
StringBuffer message = new StringBuffer("");
|
||||
Locale dutch = new Locale("nl", "BE");
|
||||
String current;
|
||||
for (int i = 0; i < locales2Test.length; i++) {
|
||||
Locale locale = locales2Test[i];
|
||||
current = dutch.getDisplayLanguage(locale);
|
||||
if (!current.equals(expectedNames[i])) {
|
||||
message.append("[");
|
||||
message.append(locale.getDisplayLanguage());
|
||||
message.append("] ");
|
||||
message.append("Language name is ");
|
||||
message.append(current);
|
||||
message.append(" should be ");
|
||||
message.append(expectedNames[i]);
|
||||
message.append("\n");
|
||||
}
|
||||
}
|
||||
|
||||
if (message.length() >0) {
|
||||
throw new Exception("\n" + message.toString());
|
||||
}
|
||||
} finally {
|
||||
// restore the reserved locale
|
||||
Locale.setDefault(reservedLocale);
|
||||
}
|
||||
}
|
||||
|
||||
StringBuffer message = new StringBuffer("");
|
||||
Locale dutch = new Locale("nl", "BE");
|
||||
String current;
|
||||
for (int i = 0; i < locales2Test.length; i++) {
|
||||
Locale locale = locales2Test[i];
|
||||
current = dutch.getDisplayLanguage(locale);
|
||||
if (!current.equals(expectedNames[i])) {
|
||||
message.append("[");
|
||||
message.append(locale.getDisplayLanguage());
|
||||
message.append("] ");
|
||||
message.append("Language name is ");
|
||||
message.append(current);
|
||||
message.append(" should be ");
|
||||
message.append(expectedNames[i]);
|
||||
message.append("\n");
|
||||
}
|
||||
}
|
||||
|
||||
if (message.length() >0) {
|
||||
throw new Exception("\n" + message.toString());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2007, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -24,11 +24,11 @@
|
||||
/**
|
||||
* @test
|
||||
* @bug 4640234 4946057 4938151 4873691 5023181
|
||||
* @summary Verifies the translation of time zone names, this test will catch presence
|
||||
* of country name for english and selected locales for all ISO country
|
||||
* codes.
|
||||
* The test program also displays which timezone, country and language names
|
||||
* are not translated
|
||||
* @summary Verifies the translation of time zone names, this test will catch
|
||||
* presence of country name for english and selected locales for all
|
||||
* ISO country codes.
|
||||
* The test program also displays which timezone, country and
|
||||
* language names are not translated
|
||||
*/
|
||||
|
||||
|
||||
@ -51,230 +51,242 @@ import java.util.TimeZone;
|
||||
|
||||
|
||||
public class Bug4640234 {
|
||||
static SimpleDateFormat sdfEn = new SimpleDateFormat("zzzz", Locale.US);
|
||||
static SimpleDateFormat sdfEnShort = new SimpleDateFormat("z", Locale.US);
|
||||
static Locale locEn = Locale.ENGLISH;
|
||||
static SimpleDateFormat sdfEn = new SimpleDateFormat("zzzz", Locale.US);
|
||||
static SimpleDateFormat sdfEnShort = new SimpleDateFormat("z", Locale.US);
|
||||
static Locale locEn = Locale.ENGLISH;
|
||||
|
||||
static SimpleDateFormat sdfLoc;
|
||||
static SimpleDateFormat sdfLocShort;
|
||||
static Date date = new Date();
|
||||
static SimpleDateFormat sdfLoc;
|
||||
static SimpleDateFormat sdfLocShort;
|
||||
static Date date = new Date();
|
||||
|
||||
// Define supported locales
|
||||
static Locale[] locales2Test = new Locale[] {
|
||||
new Locale("de"),
|
||||
new Locale("es"),
|
||||
new Locale("fr"),
|
||||
new Locale("it"),
|
||||
new Locale("ja"),
|
||||
new Locale("ko"),
|
||||
new Locale("sv"),
|
||||
new Locale("zh", "CN"),
|
||||
new Locale("zh", "TW")
|
||||
};
|
||||
// Define supported locales
|
||||
static Locale[] locales2Test = new Locale[] {
|
||||
new Locale("de"),
|
||||
new Locale("es"),
|
||||
new Locale("fr"),
|
||||
new Locale("it"),
|
||||
new Locale("ja"),
|
||||
new Locale("ko"),
|
||||
new Locale("sv"),
|
||||
new Locale("zh", "CN"),
|
||||
new Locale("zh", "TW")
|
||||
};
|
||||
|
||||
public static void main(String[] args) throws Exception {
|
||||
Locale.setDefault(Locale.ENGLISH);
|
||||
public static void main(String[] args) throws Exception {
|
||||
Locale reservedLocale = Locale.getDefault();
|
||||
try {
|
||||
Locale.setDefault(Locale.ENGLISH);
|
||||
|
||||
StringBuffer errors = new StringBuffer("");
|
||||
StringBuffer warnings = new StringBuffer("");
|
||||
StringBuffer errors = new StringBuffer("");
|
||||
StringBuffer warnings = new StringBuffer("");
|
||||
|
||||
String[] timezones = TimeZone.getAvailableIDs();
|
||||
String[] countries = locEn.getISOCountries();
|
||||
String[] languages = locEn.getISOLanguages();
|
||||
String[] timezones = TimeZone.getAvailableIDs();
|
||||
String[] countries = locEn.getISOCountries();
|
||||
String[] languages = locEn.getISOLanguages();
|
||||
|
||||
ResourceBundle resEn = ResourceBundle.getBundle("sun.util.resources.LocaleNames", locEn);
|
||||
Map<String, String> countryMapEn = getList(resEn, true);
|
||||
Map<String, String> languageMapEn = getList(resEn, false);
|
||||
ResourceBundle resEn = ResourceBundle.getBundle(
|
||||
"sun.util.resources.LocaleNames", locEn);
|
||||
Map<String, String> countryMapEn = getList(resEn, true);
|
||||
Map<String, String> languageMapEn = getList(resEn, false);
|
||||
|
||||
ResourceBundle resLoc;
|
||||
Map<String, String> countryMap;
|
||||
Map<String, String> languageMap;
|
||||
ResourceBundle resLoc;
|
||||
Map<String, String> countryMap;
|
||||
Map<String, String> languageMap;
|
||||
|
||||
for (Locale locale : locales2Test) {
|
||||
resLoc = ResourceBundle.getBundle("sun.util.resources.LocaleNames", locale);
|
||||
for (Locale locale : locales2Test) {
|
||||
resLoc = ResourceBundle.getBundle(
|
||||
"sun.util.resources.LocaleNames", locale);
|
||||
|
||||
sdfLoc = new SimpleDateFormat("zzzz", locale);
|
||||
sdfLocShort = new SimpleDateFormat("z", locale);
|
||||
sdfLoc = new SimpleDateFormat("zzzz", locale);
|
||||
sdfLocShort = new SimpleDateFormat("z", locale);
|
||||
|
||||
for (String timezone : timezones) {
|
||||
if (isTZIgnored(timezone)) {
|
||||
continue;
|
||||
for (String timezone : timezones) {
|
||||
if (isTZIgnored(timezone)) {
|
||||
continue;
|
||||
}
|
||||
warnings.append(testTZ(timezone, locale));
|
||||
}
|
||||
|
||||
countryMap = getList(resLoc, true);
|
||||
|
||||
for (String country : countries) {
|
||||
String[] result = testEntry(country,
|
||||
countryMapEn,
|
||||
countryMap,
|
||||
locale,
|
||||
"ERROR: {0} country name for country code: {1} not found!\n",
|
||||
"WARNING: {0} country name for country code: {1} not localized!\n"
|
||||
);
|
||||
if (warnings.indexOf(result[0]) == -1) {
|
||||
warnings.append(result[0]);
|
||||
}
|
||||
if (errors.indexOf(result[1]) == -1) {
|
||||
errors.append(result[1]);
|
||||
}
|
||||
}
|
||||
|
||||
languageMap = getList(resLoc, false);
|
||||
for (String language : languages) {
|
||||
String[] result = testEntry(language,
|
||||
languageMapEn,
|
||||
languageMap,
|
||||
locale,
|
||||
"ERROR: {0} language name for language code: {1} not found!\n",
|
||||
"WARNING: {0} language name for language code: {1} not localized!\n");
|
||||
if (warnings.indexOf(result[0]) == -1) {
|
||||
warnings.append(result[0]);
|
||||
}
|
||||
if (errors.indexOf(result[1]) == -1) {
|
||||
errors.append(result[1]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
StringBuffer message = new StringBuffer("");
|
||||
if (!"".equals(errors.toString())) {
|
||||
message.append("Test failed! ");
|
||||
message.append("ERROR: some keys are missing! ");
|
||||
}
|
||||
|
||||
if ("".equals(message.toString())) {
|
||||
System.out.println("\nTest passed");
|
||||
System.out.println(warnings.toString());
|
||||
} else {
|
||||
System.out.println("\nTest failed!");
|
||||
System.out.println(errors.toString());
|
||||
System.out.println(warnings.toString());
|
||||
throw new Exception("\n" + message);
|
||||
}
|
||||
} finally {
|
||||
// restore the reserved locale
|
||||
Locale.setDefault(reservedLocale);
|
||||
}
|
||||
warnings.append(testTZ(timezone, locale));
|
||||
}
|
||||
}
|
||||
|
||||
countryMap = getList(resLoc, true);
|
||||
/**
|
||||
* Compares the english timezone name and timezone name in specified locale
|
||||
* @param timeZoneName - name of the timezone to compare
|
||||
* @param locale - locale to test against english
|
||||
* @return empty string when passed, descriptive error message in other cases
|
||||
*/
|
||||
private static String testTZ(String timeZoneName, Locale locale) {
|
||||
StringBuffer timeZoneResult = new StringBuffer("");
|
||||
TimeZone tz = TimeZone.getTimeZone(timeZoneName);
|
||||
sdfEn.setTimeZone(tz);
|
||||
sdfEnShort.setTimeZone(tz);
|
||||
sdfLoc.setTimeZone(tz);
|
||||
sdfLocShort.setTimeZone(tz);
|
||||
|
||||
for (String country : countries) {
|
||||
String[] result = testEntry(country,
|
||||
countryMapEn,
|
||||
countryMap,
|
||||
locale,
|
||||
"ERROR: {0} country name for country code: {1} not found!\n",
|
||||
"WARNING: {0} country name for country code: {1} not localized!\n"
|
||||
);
|
||||
if (warnings.indexOf(result[0]) == -1) {
|
||||
warnings.append(result[0]);
|
||||
String en, enShort, loc, locShort;
|
||||
en = sdfEn.format(date);
|
||||
enShort = sdfEnShort.format(date);
|
||||
loc = sdfLoc.format(date);
|
||||
locShort = sdfLocShort.format(date);
|
||||
|
||||
String displayLanguage = locale.getDisplayLanguage();
|
||||
String displayCountry = locale.getDisplayCountry();
|
||||
|
||||
if (loc.equals(en)) {
|
||||
timeZoneResult.append("[");
|
||||
timeZoneResult.append(displayLanguage);
|
||||
if (!"".equals(displayCountry)) {
|
||||
timeZoneResult.append(" ");
|
||||
timeZoneResult.append(displayCountry);
|
||||
}
|
||||
timeZoneResult.append("] timezone \"");
|
||||
timeZoneResult.append(timeZoneName);
|
||||
timeZoneResult.append("\" long name \"" + en);
|
||||
timeZoneResult.append("\" not localized!\n");
|
||||
}
|
||||
if (errors.indexOf(result[1]) == -1) {
|
||||
errors.append(result[1]);
|
||||
|
||||
if (!locShort.equals(enShort)) {
|
||||
timeZoneResult.append("[");
|
||||
timeZoneResult.append(displayLanguage);
|
||||
if (!"".equals(displayCountry)) {
|
||||
timeZoneResult.append(" ");
|
||||
timeZoneResult.append(displayCountry);
|
||||
}
|
||||
timeZoneResult.append("] timezone \"");
|
||||
timeZoneResult.append(timeZoneName);
|
||||
timeZoneResult.append("\" short name \"" + enShort);
|
||||
timeZoneResult.append("\" is localized \"");
|
||||
timeZoneResult.append(locShort);
|
||||
timeZoneResult.append("\"!\n");
|
||||
}
|
||||
}
|
||||
return timeZoneResult.toString();
|
||||
}
|
||||
|
||||
languageMap = getList(resLoc, false);
|
||||
for (String language : languages) {
|
||||
String[] result = testEntry(language,
|
||||
languageMapEn,
|
||||
languageMap,
|
||||
locale,
|
||||
"ERROR: {0} language name for language code: {1} not found!\n",
|
||||
"WARNING: {0} language name for language code: {1} not localized!\n");
|
||||
if (warnings.indexOf(result[0]) == -1) {
|
||||
warnings.append(result[0]);
|
||||
/**
|
||||
* Verifies whether the name for ISOCode is localized.
|
||||
* @param ISOCode - ISO country/language code for country/language name
|
||||
* to test
|
||||
* @param entriesEn - array of english country/language names
|
||||
* @param entriesLoc - array of localized country/language names for
|
||||
* specified locale
|
||||
* @param locale - locale to test against english
|
||||
* @param notFoundMessage - message in form ready for MessageFormat,
|
||||
* {0} will be human readable language name, {1} will be ISOCode.
|
||||
* @param notLocalizedMessage - message in for ready for MessageFormat,
|
||||
* same formatting like for notFountMessage
|
||||
* @return array of two empty strings when passed, descriptive error message
|
||||
* in other cases, [0] - warnings for not localized, [1] - errors for
|
||||
* missing keys.
|
||||
*/
|
||||
private static String[] testEntry(String ISOCode,
|
||||
Map<String, String> entriesEn,
|
||||
Map<String, String> entriesLoc,
|
||||
Locale locale,
|
||||
String notFoundMessage,
|
||||
String notLocalizedMessage) {
|
||||
String nameEn = null;
|
||||
String nameLoc = null;
|
||||
|
||||
for (String key: entriesEn.keySet()) {
|
||||
if (ISOCode.equalsIgnoreCase(key)) {
|
||||
nameEn = entriesEn.get(key);
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (errors.indexOf(result[1]) == -1) {
|
||||
errors.append(result[1]);
|
||||
|
||||
for (String key: entriesLoc.keySet()) {
|
||||
if (ISOCode.equalsIgnoreCase(key)) {
|
||||
nameLoc = entriesLoc.get(key);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (nameEn == null) {
|
||||
// We should not get here but test is a MUST have
|
||||
return new String[] {"", MessageFormat.format(notFoundMessage,
|
||||
new String[] {"English", ISOCode})};
|
||||
}
|
||||
|
||||
if (nameLoc == null) {
|
||||
return new String[] {"", MessageFormat.format(notFoundMessage,
|
||||
new String[] {locale.getDisplayName(), ISOCode})};
|
||||
}
|
||||
|
||||
if (nameEn.equals(nameLoc)) {
|
||||
return new String[] {MessageFormat.format(notLocalizedMessage,
|
||||
new String[] {locale.getDisplayName(), ISOCode}), ""};
|
||||
}
|
||||
|
||||
return new String[] {"", ""};
|
||||
}
|
||||
|
||||
StringBuffer message = new StringBuffer("");
|
||||
if (!"".equals(errors.toString())) {
|
||||
message.append("Test failed! ");
|
||||
message.append("ERROR: some keys are missing! ");
|
||||
private static boolean isTZIgnored(String TZName) {
|
||||
if (TZName.startsWith("Etc/GMT") ||
|
||||
TZName.indexOf("Riyadh8") != -1 ||
|
||||
TZName.equals("GMT0") ||
|
||||
TZName.equals("MET")
|
||||
) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
if ("".equals(message.toString())) {
|
||||
System.out.println("\nTest passed");
|
||||
System.out.println(warnings.toString());
|
||||
} else {
|
||||
System.out.println("\nTest failed!");
|
||||
System.out.println(errors.toString());
|
||||
System.out.println(warnings.toString());
|
||||
throw new Exception("\n" + message);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Compares the english timezone name and timezone name in specified locale
|
||||
* @param timeZoneName - name of the timezone to compare
|
||||
* @param locale - locale to test against english
|
||||
* @return empty string when passed, descriptive error message in other cases
|
||||
*/
|
||||
private static String testTZ(String timeZoneName, Locale locale) {
|
||||
StringBuffer timeZoneResult = new StringBuffer("");
|
||||
TimeZone tz = TimeZone.getTimeZone(timeZoneName);
|
||||
sdfEn.setTimeZone(tz);
|
||||
sdfEnShort.setTimeZone(tz);
|
||||
sdfLoc.setTimeZone(tz);
|
||||
sdfLocShort.setTimeZone(tz);
|
||||
|
||||
String en, enShort, loc, locShort;
|
||||
en = sdfEn.format(date);
|
||||
enShort = sdfEnShort.format(date);
|
||||
loc = sdfLoc.format(date);
|
||||
locShort = sdfLocShort.format(date);
|
||||
|
||||
String displayLanguage = locale.getDisplayLanguage();
|
||||
String displayCountry = locale.getDisplayCountry();
|
||||
|
||||
if (loc.equals(en)) {
|
||||
timeZoneResult.append("[");
|
||||
timeZoneResult.append(displayLanguage);
|
||||
if (!"".equals(displayCountry)) {
|
||||
timeZoneResult.append(" ");
|
||||
timeZoneResult.append(displayCountry);
|
||||
}
|
||||
timeZoneResult.append("] timezone \"");
|
||||
timeZoneResult.append(timeZoneName);
|
||||
timeZoneResult.append("\" long name \"" + en);
|
||||
timeZoneResult.append("\" not localized!\n");
|
||||
}
|
||||
|
||||
if (!locShort.equals(enShort)) {
|
||||
timeZoneResult.append("[");
|
||||
timeZoneResult.append(displayLanguage);
|
||||
if (!"".equals(displayCountry)) {
|
||||
timeZoneResult.append(" ");
|
||||
timeZoneResult.append(displayCountry);
|
||||
}
|
||||
timeZoneResult.append("] timezone \"");
|
||||
timeZoneResult.append(timeZoneName);
|
||||
timeZoneResult.append("\" short name \"" + enShort);
|
||||
timeZoneResult.append("\" is localized \"");
|
||||
timeZoneResult.append(locShort);
|
||||
timeZoneResult.append("\"!\n");
|
||||
}
|
||||
return timeZoneResult.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* Verifies whether the name for ISOCode is localized.
|
||||
* @param ISOCode - ISO country/language code for country/language name to test
|
||||
* @param entriesEn - array of english country/language names
|
||||
* @param entriesLoc - array of localized country/language names for specified locale
|
||||
* @param locale - locale to test against english
|
||||
* @param notFoundMessage - message in form ready for MessageFormat, {0} will be human readable
|
||||
* language name, {1} will be ISOCode.
|
||||
* @param notLocalizedMessage - message in for ready for MessageFormat, same formatting like
|
||||
* for notFountMessage
|
||||
* @return array of two empty strings when passed, descriptive error message in
|
||||
* other cases, [0] - warnings for not localized, [1] - errors for missing keys.
|
||||
*/
|
||||
private static String[] testEntry(String ISOCode,
|
||||
Map<String, String> entriesEn,
|
||||
Map<String, String> entriesLoc,
|
||||
Locale locale,
|
||||
String notFoundMessage,
|
||||
String notLocalizedMessage) {
|
||||
String nameEn = null;
|
||||
String nameLoc = null;
|
||||
|
||||
for (String key: entriesEn.keySet()) {
|
||||
if (ISOCode.equalsIgnoreCase(key)) {
|
||||
nameEn = entriesEn.get(key);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
for (String key: entriesLoc.keySet()) {
|
||||
if (ISOCode.equalsIgnoreCase(key)) {
|
||||
nameLoc = entriesLoc.get(key);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (nameEn == null) {
|
||||
// We should not get here but test is a MUST have
|
||||
return new String[] {"", MessageFormat.format(notFoundMessage,
|
||||
new String[] {"English", ISOCode})};
|
||||
}
|
||||
|
||||
if (nameLoc == null) {
|
||||
return new String[] {"", MessageFormat.format(notFoundMessage,
|
||||
new String[] {locale.getDisplayName(), ISOCode})};
|
||||
}
|
||||
|
||||
if (nameEn.equals(nameLoc)) {
|
||||
return new String[] {MessageFormat.format(notLocalizedMessage,
|
||||
new String[] {locale.getDisplayName(), ISOCode}), ""};
|
||||
}
|
||||
|
||||
return new String[] {"", ""};
|
||||
}
|
||||
|
||||
private static boolean isTZIgnored(String TZName) {
|
||||
if (TZName.startsWith("Etc/GMT") ||
|
||||
TZName.indexOf("Riyadh8") != -1 ||
|
||||
TZName.equals("GMT0") ||
|
||||
TZName.equals("MET")
|
||||
) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private static Map<String, String> getList(ResourceBundle rs, Boolean getCountryList) {
|
||||
private static Map<String, String> getList(
|
||||
ResourceBundle rs, Boolean getCountryList) {
|
||||
char beginChar = 'a';
|
||||
char endChar = 'z';
|
||||
if (getCountryList) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user