Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-5035504

(fmt) assertion error in Formatter for width

    XMLWordPrintable

Details

    • Bug
    • Resolution: Duplicate
    • P4
    • None
    • 5.0
    • core-libs
    • generic
    • solaris_8

    Description

      The following program illustrates an assertion error in Formatter.

      ==========$ cat -n T.java
           1 class T {
           2 public static void main(String[] args) {
           3 System.out.printf("%9999999999d%n", 12);
           4 }
           5 }
      ==========$ javac T.java
      ==========$ java -esa T
      Exception in thread "main" java.lang.AssertionError
              at java.util.Formatter$FormatSpecifier.width(Formatter.java:2479)
              at java.util.Formatter$FormatSpecifier.<init>(Formatter.java:2527)
              at java.util.Formatter.parse(Formatter.java:2389)
              at java.util.Formatter.format(Formatter.java:2323)
              at java.io.PrintStream.format(PrintStream.java:908)
              at java.io.PrintStream.printf(PrintStream.java:809)
              at T.main(T.java:3)
      ==========$

      This is critical for Tiger because fixing it requires an API change.
      Specifically, in this case we have an illegal width, but the state of
      the class IllegalFormatWidthException, which is required by specification
      to be thrown in this case, is an int instead of a String.
      The illegal width cannot be expressed in an int, so it is not possible
      for the required exception with the specified state to be created.
      In general, the illegal width can be an arbitrary string of digits.
      A similar issue arises for IllegalFormatPrecisionException. Unless this
      is fixed in Tiger we will have a specification that is impossible to
      correctly implement.

      ###@###.### 2004-06-07

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              gafter Neal Gafter
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:
                Imported:
                Indexed: