JDK-7073852 : Support multiple scripts for digits and decimal symbols per locale
  • Type: Enhancement
  • Component: core-libs
  • Sub-Component: java.text
  • Affected Version: 7
  • Priority: P4
  • Status: Closed
  • Resolution: Fixed
  • OS: generic
  • CPU: generic
  • Submitted: 2011-08-02
  • Updated: 2017-05-16
  • Resolved: 2012-09-05
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
8 b55Fixed
Related Reports
Relates :  
CLDR supports digits and decimal symbols (such as decimal point) in multiple scripts, as number systems, per locale. For example, ar.xml of CLDR has 2 number systems, "arab" and "latn".

On the other hand, java.text.DecimalFormatSymbols supports a single set of digits and symbols per locale. This needs to be enhanced in order to support CLDR data.

Run the new test developed for JEP 127 with latest JPRT build and JDK8 b62.

SUGGESTED FIX http://hg.openjdk.java.net/jdk8/tl/jdk/rev/131a683a2ce0

EVALUATION Unlike DateFormat, which could have been in conflict between internally held a DateFormatSymbols (GregorianCalendar based) instance and a Calendar instance, NumberFormat does not have such issues. So simply passing different numbering system information as a Unicode extension in a locale identifier should work fine. e.g., calling NumberFormat.getXXXInstance(Locale) with ar-EG-u-nu-latn ar-EG-u-nu-arab could return different number format instances, depending on the availability of those resources.