harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Spark Shen <smallsmallor...@gmail.com>
Subject re: [jira] Commented: (HARMONY-1110) [classlib][text] ChoiceFormat(String) pattern parser differs from RI
Date Tue, 19 Sep 2006 07:30:37 GMT
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: harmony-dev-unsubscribe@incubator.apache.org
For additional commands, e-mail: harmony-dev-help@incubator.apache.org


Mime
View raw message