Hi Jim,
I just had a look at this JIRA and had a question about it. It sounds
from your description that we are seeing a difference between ICU's and
Harmony's implementation of some Calendar related classes. This seems to
me like a bug in either our code or ICU's and I wasn't sure that fixing
the tests to pass was the right thing to do here. My thoughts were that
we need to do one of:
- raise a bug with ICU and fix the tests for now.
- fix a bug in our GregorianCalendar class.
- delegate from our GregorianCalendar class to ICU's version (why don't
we do this already?).
I may be missing something, so I thought I'd ask - it just seems that
there is a bug/discrepancy here somewhere that needs to be fixed. I
guess my question is: why is this a fix to the tests and not the code? :)
Regards,
Oliver
Jim Yu (JIRA) wrote:
[classlib][text]
SimpleDateFormatTest.test_parseLjava_lang_StringLjava_text_ParsePosition would
fail
----------------------------------------------------------------------------------------------------
Key: HARMONY-6207
URL: https://issues.apache.org/jira/browse/HARMONY-6207
Project: Harmony
Issue Type: Test
Components: Classlib
Affects Versions: 5.0M9
Reporter: Jim Yu
Fix For: 5.0M10
Currently, the testcase SimpleDateFormatTest.test_parseLjava_lang_StringLjava_text_ParsePosition would fail. I've investigated the root cause of this failure and found the main reason is that the GregorianCalendar class used in the testcase is implemented by Harmony itself not delegating to ICU. So when we call getTime of GregorianCalendar to get an Date instance as the expected value, it would not equal to the one created by ICU as the result. E.g. the following testcase [1] would fail while [2] can pass. So I use Date instances directly for these failing ones in my patch.
[1] test.parse("yyy", "99", new GregorianCalendar(99, Calendar.JANUARY, 1)
.getTime(), 0, 2);
[2] test.parse("yyy", "99", new com.ibm.icu.util.GregorianCalendar(99,
Calendar.JANUARY, 1)
.getTime(), 0, 2);
--
Oliver Deakin
Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number 741598.
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU