On 06/28/2013 12:10 PM, Brian Burkhalter wrote:
Continuing this thread
http://mail.openjdk.java.net/pipermail/core-libs-dev/2013-June/018326.html
with respect to this issue
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6178739
this Request for Review proposes the following change to the Formatter javadoc
specification:
diff -r 8d577b3a6ca4 src/share/classes/java/util/Formatter.java
--- a/src/share/classes/java/util/Formatter.java Fri Jun 28 11:09:10
2013 -0700
+++ b/src/share/classes/java/util/Formatter.java Fri Jun 28 11:58:45
2013 -0700
@@ -190,7 +190,7 @@
* <p> The optional <i>flags</i> is a set of characters that modify the output
* format. The set of valid flags depends on the conversion.
*
- * <p> The optional <i>width</i> is a non-negative decimal integer indicating
+ * <p> The optional <i>width</i> is a positive decimal integer indicating
* the minimum number of characters to be written to the output.
*
* <p> The optional <i>precision</i> is a non-negative decimal integer usually
The change is to require the field width to be positive rather than
non-negative. Allowing a zero minimum field width seems meaningless. This
matches the current behavior as defined by the format specifier regular
expression:
private static final String formatSpecifier
= "%(\\d+\\$)?([-#+ 0,(\\<]*)?(\\d+)?(\\.\\d+)?([tT])?([a-zA-Z%])";
A CCC request for the above would naturally need to be approved if this is
change were deemed acceptable.
An alternative, as previously stated, would be to handle cases like %0.4f
specially but this seems to violate the letter of the specification as
currently written. It would however match the behavior of C and not require a
CCC request, FWIW.
Thanks,
Brian
Hello,
Our default policy when a case like this is found is to change the
specification to match the implementation.
While matching the C behavior is generally desirable, if no one has
requested that in the many years Formatter has been in the platform, I
think it is reasonable to change the specification to require a positive
argument in this case.
Cheers,
-Joe