The attached program gives the following result:

bash-2.05b$ java TestDecimalFormat      
0.00% java.lang.IllegalArgumentException: unexpected special character - index: 4

Which is not the case with Sun's JDK.

In the kaffe world, I applied the following patch:

--- java/text/DecimalFormat.java.orig   Thu Aug 28 00:44:12 2003
+++ java/text/DecimalFormat.java        Wed Oct 22 17:57:28 2003
@@ -205,6 +205,8 @@
              }
            else if (c != syms.getExponential()
                     && c != syms.getPatternSeparator()
+                    && c != syms.getPercent()
+                    && c != syms.getPerMill()
                     && patChars.indexOf(c) != -1)
              throw new IllegalArgumentException ("unexpected special " +
                                                  "character - index: " + index);


And the program for this case follows:

import java.text.DecimalFormat;

public class TestDecimalFormat {

    public static void main(String[] args) {
        String[] formats = new String[]  {
            "0",
            "0.00",
            "#,##0",
            "#,##0.00",
            "$#,##0;($#,##0)",
            "$#,##0;($#,##0)",
            "$#,##0.00;($#,##0.00)",
            "$#,##0.00;($#,##0.00)",
            "0%",
            "0.00%",
            "0.00E00",
            "#,##0;(#,##0)",
            "#,##0;(#,##0)",
            "#,##0.00;(#,##0.00)",
            "#,##0.00;(#,##0.00)",
            "#,##0;(#,##0)",
            "$#,##0;($#,##0)",
            "#,##0.00;(#,##0.00)",
            "$#,##0.00;($#,##0.00)",
            "##0.0E0" };
        for(int i=0; i < formats.length; i++) {
            try {
                DecimalFormat d = new DecimalFormat(formats[i]);
            }
            catch (Exception e) {
                System.err.println(formats[i] + " " + e);
            }
        }
    }
}


_______________________________________________
Classpath mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/classpath

Reply via email to