Anton Luht 写道:
Hello,
And there are places RI behaves irrational and not compatible with RI.
You mean RI behaves not compatible with spec? :)
Hi, Anton:
*Irrational* may be not a good word, is *illogical *better?. :-) In some
places, RI does behave differently from RI.
This can be proved by the test cases Richard and I provided earlier:
Richard's:
public void test_ConstructorLjava_lang_Appendable() {
Formatter formatter = new Formatter((Appendable) null);
*// RI will throw a java.util.FormatterClosedException here, which is
not compatible with RI
// "If appendable is null, then a StringBuilder will be created", cited
from spec.
* Appendable out = formatter.out();
assertTrue(out instanceof StringBuilder);
}
Mine:
public void
test_formatLjava_lang_String$Ljava_lang_Object_BigDecimalConversionF() {
f = new Formatter(Locale.US);
f.format("%f", new BigDecimal("5.0E9"));
*// error on RI
// RI throw ArrayIndexOutOfBoundsException
// This behavior here is illogical.
* assertEquals("5000000000.000000", f.toString());
}
IMHO, following RI under these situations may not be a good choice.
Since there seems no ubiquitous opinion about
how to deal with these differences, record them down, as Richard had
suggested, may be a better choice.
That's the reason why some test cases do not pass on RI (Sun 5.0.7) as
Nathan pointed out eailer. The reason is the test cases chooses to
follow Spec, but not RI's specific, sometimes odd behavior on these
occasion.
Best regards
--
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]