-
Bug
-
Resolution: Fixed
-
P2
-
11
-
b19
-
b27
-
generic
-
generic
-
Verified
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8209583 | 12 | Rachna Goel | P2 | Closed | Fixed | b07 |
ADDITIONAL SYSTEM INFORMATION :
Mac OSX 10.13.6
Output of java -version:
openjdk version "11-ea" 2018-09-25
OpenJDK Runtime Environment 18.9 (build 11-ea+25)
OpenJDK 64-Bit Server VM 18.9 (build 11-ea+25, mixed mode)
A DESCRIPTION OF THE PROBLEM :
When invoking DateFormat.getTimeInstance(DateFormat.SHORT, locale) when locale is either "Burmese" or "Burmese (Myanmar (Burma))", an IllegalArgumentException is thrown with the message: "Illegal pattern character 'B'".
The exception does not occur in production versions of Java (neither Java 1.8.0_181 nor 10.0.2 encounter this problem).
REGRESSION : Last worked in version 10.0.2
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
1. Compile the test case source code.
2. Run the class using Java 10.0.2, piping through grep for 'FAIL'. e.g.:
java LocaleTest |grep 'FAIL'
You should get no output.
3. Repeat step 2, except use Java 11-ea build 11-ea+25
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
There should also be no output.
ACTUAL -
Burmese: FAIL
Burmese (Myanmar (Burma)): FAIL
---------- BEGIN SOURCE ----------
import java.text.DateFormat;
import java.util.Arrays;
import java.util.Locale;
public class LocaleTest {
public static void main(String[] args) {
Arrays.asList(Locale.getAvailableLocales()).forEach(locale -> {
System.out.print(locale.getDisplayName()+": ");
try {
DateFormat.getTimeInstance(DateFormat.SHORT, locale);
System.out.println("PASS");
} catch(IllegalArgumentException ex) {
System.out.println("FAIL");
}
});
}
}
---------- END SOURCE ----------
CUSTOMER SUBMITTED WORKAROUND :
Not investigated
FREQUENCY : always
Mac OSX 10.13.6
Output of java -version:
openjdk version "11-ea" 2018-09-25
OpenJDK Runtime Environment 18.9 (build 11-ea+25)
OpenJDK 64-Bit Server VM 18.9 (build 11-ea+25, mixed mode)
A DESCRIPTION OF THE PROBLEM :
When invoking DateFormat.getTimeInstance(DateFormat.SHORT, locale) when locale is either "Burmese" or "Burmese (Myanmar (Burma))", an IllegalArgumentException is thrown with the message: "Illegal pattern character 'B'".
The exception does not occur in production versions of Java (neither Java 1.8.0_181 nor 10.0.2 encounter this problem).
REGRESSION : Last worked in version 10.0.2
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
1. Compile the test case source code.
2. Run the class using Java 10.0.2, piping through grep for 'FAIL'. e.g.:
java LocaleTest |grep 'FAIL'
You should get no output.
3. Repeat step 2, except use Java 11-ea build 11-ea+25
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
There should also be no output.
ACTUAL -
Burmese: FAIL
Burmese (Myanmar (Burma)): FAIL
---------- BEGIN SOURCE ----------
import java.text.DateFormat;
import java.util.Arrays;
import java.util.Locale;
public class LocaleTest {
public static void main(String[] args) {
Arrays.asList(Locale.getAvailableLocales()).forEach(locale -> {
System.out.print(locale.getDisplayName()+": ");
try {
DateFormat.getTimeInstance(DateFormat.SHORT, locale);
System.out.println("PASS");
} catch(IllegalArgumentException ex) {
System.out.println("FAIL");
}
});
}
}
---------- END SOURCE ----------
CUSTOMER SUBMITTED WORKAROUND :
Not investigated
FREQUENCY : always
- backported by
-
JDK-8209583 "Illegal pattern character 'B'" IllegalArgumentException with Burmese locales
- Closed
- duplicates
-
JDK-8209682 DateFormat for Malaysia "my" causes IllegalArgumentException: Illegal pattern character 'B'
- Closed
- relates to
-
JDK-8209175 Handle 'B' character introduced in CLDR 33 JDK update for Burmese (my) locale
- Closed
-
JDK-8202537 Update CLDR to version V33
- Resolved