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]