JDK-6645302 : Release TZDATA2007h to the public
  • Type: Bug
  • Component: core-libs
  • Sub-Component: java.util:i18n
  • Affected Version: 6
  • Priority: P4
  • Status: Closed
  • Resolution: Duplicate
  • OS: windows_xp
  • CPU: x86
  • Submitted: 2007-12-25
  • Updated: 2010-07-29
  • Resolved: 2007-12-25
Related Reports
Duplicate :  
Description
FULL PRODUCT VERSION :


A DESCRIPTION OF THE PROBLEM :
TZdata2007h has been out since Oct. 1, 2007.  It contained time zone changes that are required to get the correct time in major world cities (Sao Paulo, Rio, and Cairo, among others), CURRENTLY (note the changes involved in this release have already gone into effect in these countries over the last week).  This is a production issue at our firm.  You've closed the bugs related to this (6612320 (tzupdater), 2153868 (JDK 6)) as fixed, however, you haven't actually made any of the new tz releases available to the public.  The fixes are listed as being in tzupdater 1.3.0 and JDK 6.0u5, yet the versions available for download are tzupdater 1.2.2 and JDK 6.0u3, and I don't see anything on the early access site.   Can you simply make tzupdater 1.3.0 publically available?  It should be trivial and would give those of us who rely on Java timezones a way to prevent our apps from being off by an hour.

STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Run the attached code on a JRE that has been updated with the latest available version of TZUpdater from the Sun website.

EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
Should give 20071014-- This was the date when Sao Paulo changed to Daylight Savings per tzdata2007h.
ACTUAL -
Gives 20071104-- This was the daylight savings date according to tzdata2007g.

REPRODUCIBILITY :
This bug can be reproduced always.

---------- BEGIN SOURCE ----------
import java.util.*;
public class Test {
    public static void main(String[] args) {
	TimeZone tz = TimeZone.getTimeZone("America/Sao_Paulo");
	Calendar myCal = Calendar.getInstance(tz);
	myCal.set(Calendar.DAY_OF_MONTH, 1);
	myCal.set(Calendar.MONTH, 9);
	while (!tz.inDaylightTime(myCal.getTime())) {
	    myCal.add(Calendar.DAY_OF_MONTH, 1);
	}
	System.err.println("First daylight date: " + new java.text.SimpleDateFormat("yyyyMMdd").format(myCal.getTime()));
    }
}

---------- END SOURCE ----------

CUSTOMER SUBMITTED WORKAROUND :
Change all references to affected times by 1 hour +/-.

Comments
EVALUATION Duplicate of 6611886.
25-12-2007