Patch for JDK-8090098 - [regression] Webview - getTimezoneOffset() of a ISO strings returns a wrong value

Kevin Rushforth kevin.rushforth at oracle.com
Tue Jun 30 20:45:15 UTC 2015



Anton V. Tarasov wrote:
> On 30.06.2015 21:13, Hruda, Steve wrote:
>> Hi Anton,
>> thanks for the detailed information and the good news.
>>
>> You talk about JDK's jira? Am I right? ..... I don't have an access 
>> for that JIRA system since the JavaFX's Jira has moved to the JDK Bug 
>> System.
>
> Ah, ok. Then I'll quote your e-mail.
>
>>
>> About the Apple stuff.
>> I know that Apple dropped Windows Safari support and in my opinion is 
>> this a very bad situation for WebKit (in case of Windows).... and 
>> especially since Google and Opera using Google's Blink engine.
>>
>> In case of the JDK it would be more practicable to switch from WebKit 
>> to Blink, because this engine is still used by Companies which have 
>> Windows end-users.
>>
>> There is a high probability that WebKit get more such bugs if there 
>> is no big player like Google or Apple who has the man power to fix 
>> such OS dependent issues.
>
> I see. However, switching to Blink is another story. Honestly, we're 
> not planning it in the nearest future. This requires extra resources 
> which we don't have at the moment...
>
>>
>> Last questions:
>> Do you need any additional information from my side? And is it 
>> possible to integrate this fix in 8u60?
>
> From my side, I'll do a sanity check with WebKit LayoutTests, then if 
> it goes well, we can consider commiting this to 8u60.
>
> @Kevin, do you think we can?

Very unlikely. The JDK release team would need to approve, and only 
release-critical issues may be considered at this point (it would be 
hard to argue that this is release-critical since it has already been 
deferred).

-- Kevin


> Also, as an option for you (Steve). You can post the changes to the 
> WebKit alias and ask if they think this is a valid fix for the issue. 
> Any confirmation from the WebKit team would help us to make sure the 
> fix is reliable.
>
> Thanks!
> Anton.
>
>>
>> Thanks in advance!
>> Best Regards,
>> Steve
>>
>>
>>
>>
>> Diese E-Mail wurde versandt im Auftrag des Unternehmens Intergraph 
>> Ges.m.b.H.
>> Vertretungsberechtigte Geschäftsführer: Maximilian Weber
>> Sitz der Gesellschaft: Margaretenstraße 70/I/1, 1050 Wien, 
>> Österreich, Tel. +43 (1) 9610567-0
>> Eingetragen beim Handelsgericht Wien, Firmenbuch-Nr.: FN 116859 b
>> Umsatzsteuer-Identifikationsnummer / VAT-ID: ATU15138401, 
>> Steuer-Nummer: 264/4807
>>
>> This E-Mail has been sent on behalf of the company Intergraph Ges.m.b.H.
>> Authorised Managing Directors: Maximilian Weber
>> Registered office and Austrian headquarters: Margaretenstr. 70/I/1, 
>> 1050 Wien, Austria, Tel. +43 (1) 9610567-0
>> The company is recorded at the commercial court of Vienna under the 
>> company register number FN 116859 b
>> VAT-ID: ATU15138401, Austrian Tax ID: 264/4807
>>
>> Diese E-Mail (mit zugehörigen Dateien) enthält möglicherweise 
>> Informationen, die vertraulich sind, dem Urheberrecht unterliegen 
>> oder ein Geschäftsgeheimnis darstellen. Falls Sie diese Nachricht 
>> irrtümlicherweise erhalten haben, benachrichtigen Sie uns bitte 
>> umgehend, indem Sie eine Antwort senden, und löschen Sie bitte diese 
>> E-Mail und Ihre Antwort darauf. Sämtliche aufgeführten Ansichten oder 
>> Meinungen sind ausschließlich diejenigen des Autors und entsprechen 
>> nicht notwendigerweise denen des Unternehmens Intergraph.
>>
>> This E-Mail (and any attachments) may be confidential and protected 
>> by legal privilege. If you are not the intended recipient please 
>> notify us immediately by replying to the sender and delete this 
>> E-Mail and your reply from your system. All the views and opinions 
>> published here are solely based on the author's own opinion and 
>> should not be considered necessarily as reflecting the opinion of 
>> Intergraph.
>>
>>
>> -----Original Message-----
>> From: Anton V. Tarasov [mailto:anton.tarasov at oracle.com]
>> Sent: Tuesday, June 30, 2015 8:01 PM
>> To: Hruda, Steve; Kevin Rushforth
>> Cc: openjfx-dev at openjdk.java.net
>> Subject: Re: Patch for JDK-8090098 - [regression] Webview - 
>> getTimezoneOffset() of a ISO strings returns a wrong value
>>
>> Steve,
>>
>> I applied your suggestion and it worked on Windows.
>>
>> The missed check you discovered could really be a mistake in WebKit, 
>> because Apple dropped releasing (and shipping nightly builds for) 
>> Safari for Windows at 2012.
>> Safari 5.1.7 was the last version. I downloaded and checked it. The 
>> date bug is not reproducible with it, but this gives us almost 
>> nothing taking into account the version is much outdated.
>>
>> So that Windows code path might not have been well tested, since
>> http://trac.webkit.org/changeset/159892 was commited...
>>
>> (WebKit Win port is still supported and can be built on your own.)
>>
>> What I can do else to verify the changes is to run WebKit LayoutTests 
>> aimed at date testing and see if there're no regressions.
>>
>> Also, please put the info you posted into JIRA.
>>
>> Regards,
>> Anton.
>>
>> On 29.06.2015 21:42, Anton Tarasov wrote:
>>> Hi Steve,
>>>
>>> Ok, I'll investigate it.
>>>
>>> Thanks,
>>> Anton.
>>>
>>> On 29.06.2015 18:39, Hruda, Steve wrote:
>>>> Hi Anton & Kevin,
>>>>
>>>> we read your comments in the JDK bug system and analyzed WebKit's 
>>>> changesets again.
>>>>
>>>> We’ve found the code which made this regression.
>>>>
>>>> http://trac.webkit.org/changeset/159892
>>>>
>>>> This changeset doesn't handle one special case, which was handled 
>>>> by the previous code....
>>>>
>>>> double diff = ((localSystemTime.wHour - offsetHour) * secondsPerHour)
>>>> + ((localSystemTime.wMinute
>>>> - offsetMinute) *60);
>>>>
>>>>
>>>> (http://trac.webkit.org/browser/trunk/Source/WTF/wtf/DateMath.cpp?ann
>>>> otate=blame#L481 )
>>>>
>>>> The diff is wrong if the calculated the offsetTime is one day before
>>>> in case of the extreme values (e.g. midnight) where the offsetHour 
>>>> of the UTC time is  23 because of the day difference.
>>>>
>>>> In case of all other OS systems you will see the same code ->
>>>> http://trac.webkit.org/browser/trunk/Source/WTF/wtf/DateMath.cpp?anno
>>>> tate=blame#L495
>>>>
>>>> But there are  two additional lines ->  497 & 497 which fixes this
>>>> special case…
>>>>
>>>> *if*(diff<0)
>>>>
>>>>    diff += secondsPerDay;
>>>>
>>>>
>>>> That means ….
>>>>
>>>> localSystemTime.wHour = 0;
>>>>
>>>> offsetHour=23 … which causes a negative value … and the
>>>> diff+=secondsPerDay ensures that the diff result would be one Hour
>>>> instead of -23 hours
>>>>
>>>> We’ve found the attached V8DateTests.js (renamed to .txt) and
>>>> adjusted it a little bit to get the results logged in the browsers 
>>>> console.
>>>>
>>>> As you can see at “ResulBeforeOurBugFix.txt” and
>>>> “ResultAfterOurBugFix.txt”, we were able to fix
>>>> 6 tests which failed before out bug fix.
>>>>
>>>> assertEquals("Sat Oct 25 2014 23:00:00 GMT+0200 (W. Europe Daylight
>>>> Time)",
>>>>
>>>>                 (new Date(2014, 9, 25, 23, 0)).toString());
>>>>
>>>>    assertEquals("Sat, 25 Oct 2014 21:00:00 GMT",
>>>>
>>>>                 (new Date(2014, 9, 25, 23, 0)).toUTCString());
>>>>
>>>>    assertEquals("Sat Oct 25 2014 23:59:00 GMT+0200 (W. Europe Daylight
>>>> Time)",
>>>>
>>>>                 (new Date(2014, 9, 25, 23, 59)).toString());
>>>>
>>>>    assertEquals("Sat, 25 Oct 2014 21:59:00 GMT",
>>>>
>>>>                 (new Date(2014, 9, 25, 23, 59)).toUTCString());
>>>>
>>>>    assertEquals("Sun Oct 26 2014 00:00:00 GMT+0200 (W. Europe Daylight
>>>> Time)",
>>>>
>>>>                (new Date(2014, 9, 26, 0, 0)).toString());
>>>>
>>>> assertEquals("Sun Oct 26 2014 00:59:00 GMT+0200 (W. Europe Daylight
>>>> Time)",
>>>>
>>>>                 (new Date(2014, 9, 26, 0, 59)).toString());
>>>>
>>>> In addition we found out that WebKit also have problems in case of
>>>> Windows in case of the change from winter to summer time.
>>>>
>>>> *_Winter to summer time:_*
>>>>
>>>> assertEquals("Sun Mar 30 2014 03:00:00 GMT+0200 (W. Europe Daylight
>>>> Time)",
>>>>
>>>>                 (new Date(2014, 2, 30, 2, 0)).toString());
>>>>
>>>>    assertEquals("Sun, 30 Mar 2014 01:00:00 GMT",
>>>>
>>>>                 (new Date(2014, 2, 30, 2, 0)).toUTCString());
>>>>
>>>>    assertEquals("Sun Mar 30 2014 03:59:00 GMT+0200 (W. Europe Daylight
>>>> Time)",
>>>>
>>>>                 (new Date(2014, 2, 30, 2, 59)).toString());
>>>>
>>>>    assertEquals("Sun, 30 Mar 2014 01:59:00 GMT",
>>>>
>>>>                 (new Date(2014, 2, 30, 2, 59)).toUTCString());
>>>>
>>>> *_Summer to winter time:_*
>>>>
>>>> assertEquals("Sun Oct 26 2014 02:00:00 GMT+0200 (W. Europe Daylight
>>>> Time)",
>>>>
>>>>                 (new Date(2014, 9, 26, 2, 0)).toString());
>>>>
>>>>    assertEquals("Sun, 26 Oct 2014 00:00:00 GMT",
>>>>
>>>>                 (new Date(2014, 9, 26, 2, 0)).toUTCString());
>>>>
>>>>    assertEquals("Sun Oct 26 2014 02:59:00 GMT+0200 (W. Europe Daylight
>>>> Time)",
>>>>
>>>>                 (new Date(2014, 9, 26, 2, 59)).toString());
>>>>
>>>>    assertEquals("Sun, 26 Oct 2014 00:59:00 GMT",
>>>>
>>>>                 (new Date(2014, 9, 26, 2, 59)).toUTCString());
>>>>
>>>> We will try to find a solution for that, but I think that the
>>>> priority of this issue is lower than the priority of the opened 
>>>> regression.
>>>>
>>>> It would be amazing if you can add the patch of my previous and these
>>>> additional two lines
>>>> (DateMath.cpp) to the JDK8u60.
>>>>
>>>> Best Regards,
>>>>
>>>> Steve
>>>>
>>>>
>>>> Diese E-Mail wurde versandt im Auftrag des Unternehmens Intergraph 
>>>> Ges.m.b.H.
>>>> Vertretungsberechtigte Geschäftsführer: Maximilian Weber Sitz der
>>>> Gesellschaft: Margaretenstraße 70/I/1, 1050 Wien, Österreich, Tel.
>>>> +43 (1) 9610567-0 Eingetragen beim Handelsgericht Wien,
>>>> Firmenbuch-Nr.: FN 116859 b Umsatzsteuer-Identifikationsnummer /
>>>> VAT-ID: ATU15138401, Steuer-Nummer: 264/4807
>>>>
>>>> This E-Mail has been sent on behalf of the company Intergraph 
>>>> Ges.m.b.H.
>>>> Authorised Managing Directors: Maximilian Weber Registered office and
>>>> Austrian headquarters: Margaretenstr. 70/I/1, 1050 Wien, Austria,
>>>> Tel. +43
>>>> (1) 9610567-0
>>>> The company is recorded at the commercial court of Vienna under the
>>>> company register number FN
>>>> 116859 b
>>>> VAT-ID: ATU15138401, Austrian Tax ID: 264/4807
>>>>
>>>> Diese E-Mail (mit zugehörigen Dateien) enthält möglicherweise
>>>> Informationen, die vertraulich sind, dem Urheberrecht unterliegen
>>>> oder ein Geschäftsgeheimnis darstellen. Falls Sie diese Nachricht
>>>> irrtümlicherweise erhalten haben, benachrichtigen Sie uns bitte
>>>> umgehend, indem Sie eine Antwort senden, und löschen Sie bitte diese
>>>> E-Mail und Ihre Antwort darauf. Sämtliche aufgeführten Ansichten 
>>>> oder Meinungen sind ausschließlich diejenigen des Autors und 
>>>> entsprechen nicht notwendigerweise denen des Unternehmens Intergraph.
>>>>
>>>> This E-Mail (and any attachments) may be confidential and protected
>>>> by legal privilege. If you are not the intended recipient please
>>>> notify us immediately by replying to the sender and delete this
>>>> E-Mail and your reply from your system. All the views and opinions
>>>> published here are solely based on the author's own opinion and 
>>>> should not be considered necessarily as reflecting the opinion of 
>>>> Intergraph.
>>>>
>>>> -----Original Message-----
>>>>
>>>> From: openjfx-dev [mailto:openjfx-dev-bounces at openjdk.java.net] On
>>>> Behalf Of Hruda, Steve
>>>>
>>>> Sent: Tuesday, June 23, 2015 6:26 PM
>>>>
>>>> To: Anton V. Tarasov; Kevin Rushforth
>>>>
>>>> Cc: openjfx-dev at openjdk.java.net
>>>>
>>>> Subject: RE: Patch for JDK-8090098 - [regression] Webview -
>>>> getTimezoneOffset() of a ISO strings returns a wrong value
>>>>
>>>> Very cool Anton.
>>>>
>>>> I would be great if that pach could be added to 8u60, otherwise our
>>>> all our customers have to avoid Java 8u60.
>>>>
>>>> Regards,
>>>>
>>>> Steve
>>>>
>>>> Diese E-Mail wurde versandt im Auftrag des Unternehmens Intergraph 
>>>> Ges.m.b.H.
>>>>
>>>> Vertretungsberechtigte Geschäftsführer: Maximilian Weber Sitz der
>>>> Gesellschaft: Margaretenstraße 70/I/1, 1050 Wien, Österreich, Tel.
>>>> +43 (1) 9610567-0 Eingetragen beim Handelsgericht Wien,
>>>> Firmenbuch-Nr.: FN 116859 b Umsatzsteuer-Identifikationsnummer /
>>>> VAT-ID: ATU15138401,
>>>> Steuer-Nummer: 264/4807
>>>>
>>>> This E-Mail has been sent on behalf of the company Intergraph 
>>>> Ges.m.b.H.
>>>>
>>>> Authorised Managing Directors: Maximilian Weber Registered office 
>>>> and Austrian headquarters:
>>>> Margaretenstr. 70/I/1, 1050 Wien, Austria, Tel. +43 (1) 9610567-0 The
>>>> company is recorded at the commercial court of Vienna under the
>>>> company register number FN 116859 b
>>>>
>>>> VAT-ID: ATU15138401, Austrian Tax ID: 264/4807
>>>>
>>>> Diese E-Mail (mit zugehörigen Dateien) enthält möglicherweise
>>>> Informationen, die vertraulich sind, dem Urheberrecht unterliegen
>>>> oder ein Geschäftsgeheimnis darstellen. Falls Sie diese Nachricht
>>>> irrtümlicherweise erhalten haben, benachrichtigen Sie uns bitte
>>>> umgehend, indem Sie eine Antwort senden, und löschen Sie bitte diese
>>>> E-Mail und Ihre Antwort darauf. Sämtliche aufgeführten Ansichten 
>>>> oder Meinungen sind ausschließlich diejenigen des Autors und 
>>>> entsprechen nicht notwendigerweise denen des Unternehmens Intergraph.
>>>>
>>>> This E-Mail (and any attachments) may be confidential and protected
>>>> by legal privilege. If you are not the intended recipient please
>>>> notify us immediately by replying to the sender and delete this
>>>> E-Mail and your reply from your system. All the views and opinions
>>>> published here are solely based on the author's own opinion and 
>>>> should not be considered necessarily as reflecting the opinion of 
>>>> Intergraph.
>>>>
>>>> -----Original Message-----
>>>>
>>>> From: Anton V. Tarasov [mailto:anton.tarasov at oracle.com]
>>>>
>>>> Sent: Tuesday, June 23, 2015 5:46 PM
>>>>
>>>> To: Kevin Rushforth; Hruda, Steve
>>>>
>>>> Cc: openjfx-dev at openjdk.java.net
>>>>
>>>> Subject: Re: Patch for JDK-8090098 - [regression] Webview -
>>>> getTimezoneOffset() of a ISO strings returns a wrong value
>>>>
>>>> On 23.06.2015 17:48, Kevin Rushforth wrote:
>>>>
>>>>> Hi Steve,
>>>>> Thank you for taking the time to create this patch. I will add 
>>>>> this information to the bug report.
>>>>> Since your OCA is in progress we will take a look at your patch,
>>>>> but
>>>>> will need indication from the OCA office that it the OCA has been
>>>>> received before we could push it. And just to be clear, you won't
>>>>> have
>>>>> access to the repository even with an OCA. What the OCA will do is
>>>>> allow you to contribute
>>>> patches.
>>>>
>>>>> I will note that it is likely too late for 8u60, but Anton can
>>>>> evaluate it and post his comment in the bug report.
>>>> Kevin,
>>>>
>>>> I'm checking it.
>>>>
>>>> Steve, thanks for the participation!
>>>>
>>>> Regards,
>>>>
>>>> Anton.
>>>>
>>>>> -- Kevin
>>>>> Hruda, Steve wrote:
>>>>>> Hi,
>>>>>> I've created a 8u-dev patch for the following WeKit regression 
>>>>>> which comes with 8u60.
>>>>>> https://bugs.openjdk.java.net/browse/JDK-8090098
>>>>>> Please can someone of you apply this patch to fix the
>>>>>> getTimezoneOffset() issue. I have no access to the repository -> 
>>>>>> my OCA is still pending.
>>>>>> In addition I tried to test this patch , but I wasn't able to
>>>>>> build
>>>>>> the necessary jfxwebkit.dll on my windows system
>>>>>> (https://www.mail-archive.com/openjfx-dev@openjdk.java.net/msg0943
>>>>>> 9.h
>>>>>> tml )..... but I got no compile erros on Mac.
>>>>>> Patch download:
>>>>>> https://drive.google.com/file/d/0B7P_rknS1TWxM3BSTTU2OVZ4dGM/view?u
>>>>>> sp
>>>>>> =sharing
>>>>>> The patch includes the following WebKit fixes:
>>>>>> Changeset 174377  - [Win] DateMath's calculateUTFOffset does not 
>>>>>> account for DST.
>>>>>> http://trac.webkit.org/changeset/174377
>>>>>> Changeset 175078  - String(new Date(Mar 30 2014 01:00:00)) is
>>>>>> wrong
>>>>>> in CET
>>>>>> http://trac.webkit.org/changeset/175078
>>>>>> Changeset 181360 - [Win] 17 different JSC tests started to fail in
>>>>>> DST
>>>>>> http://trac.webkit.org/changeset/181360
>>>>>> Please let me know if you need further information.
>>>>>> Thanks in advance!
>>>>>> Best Regards
>>>>>> Steve
>>>>>> Diese E-Mail wurde versandt im Auftrag des Unternehmens 
>>>>>> Intergraph Ges.m.b.H.
>>>>>> Vertretungsberechtigte Geschäftsführer: Maximilian Weber Sitz der
>>>>>> Gesellschaft: Margaretenstraße 70/I/1, 1050 Wien, Österreich, Tel.
>>>>>> +43 (1) 9610567-0 Eingetragen beim Handelsgericht Wien,
>>>>>> Firmenbuch-Nr.: FN 116859 b Umsatzsteuer-Identifikationsnummer /
>>>>>> VAT-ID: ATU15138401, Steuer-Nummer: 264/4807
>>>>>> This E-Mail has been sent on behalf of the company Intergraph 
>>>>>> Ges.m.b.H.
>>>>>> Authorised Managing Directors: Maximilian Weber Registered office
>>>>>> and
>>>>>> Austrian headquarters: Margaretenstr. 70/I/1, 1050 Wien, Austria,
>>>>>> Tel. +43
>>>>>> (1) 9610567-0
>>>>>> The company is recorded at the commercial court of Vienna under
>>>>>> the
>>>>>> company register number FN
>>>>>> 116859 b
>>>>>> VAT-ID: ATU15138401, Austrian Tax ID: 264/4807
>>>>>> Diese E-Mail (mit zugehörigen Dateien) enthält möglicherweise
>>>>>> Informationen, die vertraulich sind, dem Urheberrecht unterliegen
>>>>>> oder ein Geschäftsgeheimnis darstellen. Falls Sie diese Nachricht
>>>>>> irrtümlicherweise erhalten haben, benachrichtigen Sie uns bitte
>>>>>> umgehend, indem Sie eine Antwort senden, und löschen Sie bitte
>>>>>> diese
>>>>>> E-Mail und Ihre Antwort darauf. Sämtliche aufgeführten Ansichten
>>>>>> oder Meinungen sind
>>>> ausschließlich diejenigen des Autors und entsprechen nicht
>>>> notwendigerweise denen des Unternehmens Intergraph.
>>>>
>>>>>> This E-Mail (and any attachments) may be confidential and
>>>>>> protected
>>>>>> by legal privilege. If you are not the intended recipient please
>>>>>> notify us immediately by replying to the sender and delete this
>>>>>> E-Mail and your reply from your system. All the views and opinions
>>>>>> published here are solely based on the author's own opinion and
>>>>>> should not be considered
>>>> necessarily as reflecting the opinion of Intergraph.
>>>>
>


More information about the openjfx-dev mailing list