Please review this PR and [CSR](https://bugs.openjdk.org/browse/JDK-8314607) 
which clarifies the behavior of patterns  in regards to the max integer digits 
in j.text.DecimalFormat.

The current specification (of `applyPattern`) states that patterns do not set 
the value of max integer digits. This is incorrect, these methods/constructors 
do set a value for the max integer digits. If the pattern is in scientific 
notation, the max integer digits value is derived from the pattern. Otherwise, 
the pattern is ignored, and the limit is set to `Integer.MAX_VALUE`.

See below,

DecimalFormat df = new DecimalFormat();
df.applyPattern("000.000E0");
df.getMaximumIntegerDigits(); //  ==> 3
df.applyPattern("000.000");
df.getMaximumIntegerDigits(); // ==> 2147483647

DecimalFormat df = new DecimalFormat("000.000");
df.getMaximumIntegerDigits(); // ==> 2147483647
DecimalFormat df = new DecimalFormat("000.000E0");
df.getMaximumIntegerDigits(); // ==> 3


Method descriptions should be fixed, and the relevant constructors need to 
mention the behavior as well.

-------------

Commit messages:
 - Include constructors
 - Re-clarify spec
 - Init

Changes: https://git.openjdk.org/jdk/pull/15349/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=15349&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8314604
  Stats: 28 lines in 1 file changed: 22 ins; 0 del; 6 mod
  Patch: https://git.openjdk.org/jdk/pull/15349.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/15349/head:pull/15349

PR: https://git.openjdk.org/jdk/pull/15349

Reply via email to