The following discussion occurs on JIRA 1110, may need your opinion to come to a conclusion:

Harmony and RI have different pattern parsers implementations of ChoiceFormat class. Spec hasn't any rules for pattern except a single example "-1#is negative| 0#is zero or fraction | 1#is one |1.0<is 1+ |2#is two |2<is more than 2."
So we have some differences in pattern processing

Test ---------------------------------------------------------------------------------------


import java.text.*;

public class bug9411 {
   public static void main(String[] args) {
       try {
           System.out.println(new ChoiceFormat("2|").toPattern());
     } catch (Exception e) {
            e.printStackTrace();
     }
     try {
         System.out.println(new ChoiceFormat("2#ok #ab").toPattern());
     } catch (Exception e) {
          e.printStackTrace();
     }
     try {
       System.out.println(new ChoiceFormat("2#ok <ab").toPattern());
     } catch (Exception e) {
        e.printStackTrace();
     }
   }
}

Output ---------------------------------------------------------------------

RI
0.0#
java.lang.IllegalArgumentException
at java.text.ChoiceFormat.applyPattern(ChoiceFormat.java:197) at java.text.ChoiceFormat.<init>(ChoiceFormat.java:294)
                     at bug9411.main(bug9411.java:12)
java.lang.IllegalArgumentException
at java.text.ChoiceFormat.applyPattern(ChoiceFormat.java:197) at java.text.ChoiceFormat.<init>(ChoiceFormat.java:294)
                     at bug9411.main(bug9411.java:17)

Harmony
java.lang.IllegalArgumentException
at java.text.ChoiceFormat.applyPattern(ChoiceFormat.java:127) at java.text.ChoiceFormat.<init>(ChoiceFormat.java:66)
                     at bug9411.main(bug9411.java:7)
2.0#ok #ab
2.0#ok <ab
==============================================================================================
spark shen <http://issues.apache.org/jira/secure/ViewProfile.jspa?name=spark+shen> [18/Sep/06 07:37 PM] On this specific case, seems the behavior of harmony is also reasonable. I suggest to change component to Non-bug difference.

Best regards
==============================================================================================
Denis Kishenko <http://issues.apache.org/jira/secure/ViewProfile.jspa?name=dkishenko> [18/Sep/06 11:57 PM] Spark, which behavior is reasonable depends on point of view. For example for me Harmony is reasonable in the first case while RI is reasonable in the second and third cases.
==============================================================================================
spark shen <http://issues.apache.org/jira/secure/ViewProfile.jspa?name=spark+shen> [19/Sep/06 12:07 AM]
Hi Denis Kishenko

But I totally agree with harmony on 3 cases.
On the first, '2|' indicates that there are 2 choices, but the second one is missing. So throwing an IllegalArgumentException is OK. On the second and third('2#ok #ab' & '2#ok <ab') there is only one choice. When the formatted thing >= 2, then ok#ab or ok <ab should be used IMHO.

Best regards
==============================================================================================
Denis Kishenko <http://issues.apache.org/jira/secure/ViewProfile.jspa?name=dkishenko> [19/Sep/06 12:17 AM] From my point of view, symbols "|", "#" and "<" should be reserved as pattern control symbols because they influence of pattern engine algorithm. If user want to use such symbols let's put them in quote to avoid misunderstandings.

2#ok #ab => 2#"ok #ab"
2#ok <ab => 2#"ok <ab"

--
Spark Shen
China Software Development Lab, IBM


---------------------------------------------------------------------
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to