[14] RFR: 8212970: TZ database in "vanguard" format support

Joe Wang huizhe.wang at oracle.com
Thu Jul 25 21:24:23 UTC 2019

Hi Naoto,

The legacy trap :-)

Relevant files:
1. make/data/tzdata/jdk11_backward
2. test/jdk/sun/util/calendar/zi/tzdata/jdk11_backward
3. test/jdk/sun/util/calendar/zi/tzdata_jdk/jdk11_backward
4. test/jdk/sun/util/calendar/zi/tzdata_jdk/jdk11_full_backward

I see you reverted changes to (1) plus removing (2) and (4). (3) and (4) 
differs slightly, but contains the changes previously made in (1). 
Probably not something to worry about since only (3) is referenced, and 
(4) not. Just wonder whether you've checked on this one. I assume your 
build and test passed without any issues.


On 7/25/19 1:04 PM, naoto.sato at oracle.com wrote:
> Hi Roger,
> On 7/25/19 7:47 AM, Roger Riggs wrote:
>> Hi Naoto,
>> TestZoneInfo310.java:
>> With the composition of the tzdir path up and over to the make 
>> directory for the tzdir
>> it might be useful to do an explicit check that the directory exists.
>> That way if the directory structure on the build side changes,
>> there will be a test failure makine it obvious that the dependency 
>> has changed.
> If the input tz data files, either in "test" tree or "make" tree, 
> cannot be located, the test will fail which effectively reports if 
> there is a repo structure change. So I believe it is ok as it is.
> Aside from it, the latest changes to eliminate the duplicates caused 
> that regression test fail. The reason was that there were actually two 
> "jdk11_backward" data files each in "tzdata" and "tzdata_jdk" test 
> directories, and the contents differ! I am not sure the reason why 
> there are two files this way (seems to be so for years), so I reverted 
> that exact file as before. Here is the webrev reflected that:
> http://cr.openjdk.java.net/~naoto/8212970/webrev.12/
> Naoto
>> Looks fine.
>> Thanks, Roger
>> On 7/24/19 6:24 PM, naoto.sato at oracle.com wrote:
>>> Hi Joe,
>>> Thank you for the review.
>>> On 7/24/19 2:57 PM, Joe Wang wrote:
>>>> Hi Naoto,
>>>> The method findNegativeSavings method in TzdbZoneRulesProvider.java 
>>>> states that it "Find the minimum negative savings". While the 
>>>> result is correct since the rules all have the same value for SAVE, 
>>>> I wonder if that's ideal conceptually. Given a start LDT, shouldn't 
>>>> it be looking for the SAVE in the exact (narrower) date range (e.g. 
>>>> 1981 - 1989 vs 1981 - max)?.
>>> I believe it is working as such. The end year is retrieved within 
>>> the method (line 879) and only the minimum negative saving values 
>>> within the window is filtered.
>>>> NegativeDSTTest verifies the tzdata, that is the adjusted data 
>>>> after import, is that correct? I wonder a comment and a bit of 
>>>> details in the test summary would be helpful since there is no 
>>>> negative data in the test itself.
>>> Good point. It is confusing. I supplied summary text in the test 
>>> (also the similar line in TestZoneRules.java)
>>> Here is the updated webrev:
>>> http://cr.openjdk.java.net/~naoto/8212970/webrev.11/
>>> Naoto
>>>> Best,
>>>> Joe
>>>> On 7/23/19 3:15 PM, naoto.sato at oracle.com wrote:
>>>>> Hi,
>>>>> Please review the fix to the following enhancement:
>>>>> https://bugs.openjdk.java.net/browse/JDK-8212970
>>>>> The proposed changeset is located at:
>>>>> https://cr.openjdk.java.net/~naoto/8212970/webrev.09/
>>>>> This change aims to support the "vanguard" IANA time zone data 
>>>>> format, which uses the negative savings and transition time beyond 
>>>>> a day period. The change basically translates those negative 
>>>>> savings and transition times, such as 25:00, into the ones that 
>>>>> the current JDK recognizes, then produces the data file "tzdb.dat" 
>>>>> at the build time. At the run time, the data file is read and 
>>>>> interpreted as before. This way the produced tzdb.dat is 
>>>>> compatible with the prior JDK releases so that the TZ Updater can 
>>>>> also distribute it as a time zone update.
>>>>> I have also refactored redundant copy of ZoneRules file in the 
>>>>> build directory, by dynamically importing the file under src. Thus 
>>>>> some build related files are modified. I am hoping folks on the 
>>>>> build-dev can review those changes.
>>>>> Naoto

More information about the core-libs-dev mailing list