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 core-libs-dev
mailing list