<i18n dev> RFR: 8253459: Formatter treats index, width and precision > Integer.MAX_VALUE incorrectly

Roger Riggs rriggs at openjdk.java.net
Tue Oct 6 13:59:10 UTC 2020


On Mon, 5 Oct 2020 22:23:56 GMT, Ian Graves <igraves at openjdk.org> wrote:

> The `java.util.Formatter` format specifies support for field widths, argument indexes, or precision lengths of a field
> that relate to the variadic arguments supplied to the formatter. These numbers are specified by integers, sometimes
> negative. For argument index, it's specified in the documentation that the highest allowed argument is limited by the
> largest possible index of an array (ie the largest possible variadic index), but for the other two it's not defined.
> Moreover, what happens when a number field in a string is too large or too small to be represented by a 32-bit integer
> type is not defined.  This fix adds documentation to specify what error behavior occurs during these cases.
> Additionally it adds an additional exception type to throw when an invalid argument index is observed.  A CSR will be
> required for this PR.

Is the new exception type useful?  yes, it matches the previous pattern.
But it (and none of the IllegalFormatException subclasses) produce a readable message with the offending value. So the
developer will not see anything useful. The fine grained exceptions provide little value.

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

PR: https://git.openjdk.java.net/jdk/pull/516


More information about the i18n-dev mailing list