harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Oliver Deakin <oliver.dea...@googlemail.com>
Subject Re: [jira] Created: (HARMONY-6207) [classlib][text] SimpleDateFormatTest.test_parseLjava_lang_StringLjava_text_ParsePosition would fail
Date Thu, 14 May 2009 16:03:47 GMT
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? :)


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,
>                 .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

View raw message