Sun Alert 102836: Olson TZ Data Incompatibility Issues

Sun (sm) Alert Notification

  • Sun Alert ID: 102836
  • Synopsis: Olson time zone data tzdata2005r or greater incompatibility
  • Category: Availability
  • Product: Java 2 Platform, Standard Edition
  • BugIDs: 6466476, 6530336
  • Avoidance: Time Zone Updater Tool for v1.4.x+
  • State: Resolved
  • Date Released:
  • Date Closed:
  • Date Modified:

1. Impact

JREs or JDKs containing Olson time zone data, version 2005r or greater, are subject to two issues with the Eastern, Mountain and Hawaiian time zones.

As a result, daylight savings time is calculated incorrectly for these time zones under certain circumstances.

For more background see: Background Overview on Sun Alert Doc : 102836

1.1 Scope

You are affected if:

  • You use the three letter time zone IDs "EST", "HST", "MST" instead of the long format, e.g., "America/New_York".

 

And/or:
  • You parse time strings that contain "EDT", "HDT", "MDT".

You are not affected in the following cases:

  • If you are using releases Java SE v1.3.x and below.

 

Or:


  • You are processing "HST" and "HDT" Hawaiian dates before 1947.

1.2 Problem Statement

Two distinct, but related issues exist.

The first is described by Sun bug 6466476.

This issue is an incompatibility in the definition of time zone objects identified by the time zone IDs "EST", "MST" or "HST". Prior to Olson data 2005r these 3 IDs refer to zones which observe daylight savings time. For Olson data 2005r or later these 3 IDs refer to zones which do not observe daylight savings time.

The second is described by Sun bug 6530336.

It effects the parsing of date strings containing the strings "EDT", "HDT" or "MDT", for example "July 4th 2007, 1:00 pm EDT".

2. Contributing Factors

Both issues occur in JREs containing Olson tzdata 2005r or later. These are:

  • JDK and JRE v1.4.2_12 and above
  • JDK and JRE 5.0u8 and above
  • JDK and JRE 6 and above.
  • Any JDK and JRE where Time Zone Updater Tool for v1.4.x+ has been run without the "-bc" flag

3. Symptoms

In the above conditions DST will be calculated incorrectly.

4. Relief/Workaround

Apply the resolution detailed in section 5, if you are exposed or in doubt.

5. Resolution

5.1 To effect the correction (that is, to enable support for the backward compatible DST timezones):

Run Time Zone Updater Tool for v1.4.x+ with the command line options: -f -bc

-bc-f -bc

Note: A side effect of running TZ Update Tool with -f -bc on the following:

  • JDK and JRE v1.4.2_12 and above
  • JDK and JRE 5.0u8 and above
  • JDK and JRE 6 and above.

Note:An alternative to the TZ Updater Tool is to manually remove:

  • JAVAHOME/jre/lib/zi/EST
  • JAVAHOME/jre/lib/zi/MST
  • JAVAHOME/jre/lib/zi/HST

These two operations are equivalent in that they correct for the  time zone ID incompatibility issue.

Other related notes:

Q. If I'm using the deprecated time zone IDs: "EST", "HST", "MST" and I am running JRE versions:

  • JDK and JRE v1.4.2_12 and above
  • JDK and JRE 5.0u8 and above
  • JDK and JRE 6 and above.


A. You must decide between fixing the parse problem, bug 6530336, or maintaining the "EST", "HST", and "MST" semantics of those releases. If you apply the resolution, you will change the sematics of "EST", "HST", and "MST" IDs to observe daylight savings time.

Q.Does this issue affect Solaris, Linux, and Windows?

A.This issue affects all platforms.

Q. Do affected Java applications have to be stopped before running the tzupdater tool ?

A. Since the JVM software contains SoftReferences to TimeZone specific objects, the safest action is to stop the JVM software before updating. The consequences of not stopping the JVM software could be that old cached copies of TimeZone objects remain in the JVM software's operating environment.

Q. Are packages within Solaris affected?

A. Packages within Solaris should not have any hard-coded time zone specific time stamps. Most Solaris applications using Java will read their time zone from the local OS environment, namely, the environment variable "TZ". No "TZ" variable should be using a three letter timezone ID, in particular the conflicting three letter IDs mentioned in this Sun Alert. As a result, these packages should not suffer from this compatibility issue.

Q. I get the following message after running the TZ Updater Tool v1.1.0 on Solaris, what does it mean?

<JAVA_HOME>/jre/bin/java not directly found in contents file, no package resolution performed. (May not be in PKG form, not an absolute path, or is a symlink.)

A. This message indicates that the JDK/JRE software just updated was not part of a Solaris package. No step was necessary to update the OS with the fact that files under package management have changed, that is, jre/lib/zi directory contents. The update of the timezone data has been successful in this case.

For more information:



5.2 Install Issues:

In the unlikely event of unforeseen issues (for example, a power loss or IO Error) restore the JRE Time Zone files to their original state by:

a) following the instructions at: here

OR:

b) removing and then reinstalling the JRE or JDK software.

The update may now be re-applied by following step 5.1.

This Sun Alert notification is being provided to you on an "AS IS" basis. This Sun Alert notification may contain information provided by third parties. The issues described in this Sun Alert notification may or may not impact your system(s). Sun makes no representations, warranties, or guarantees as to the information contained herein. ANY AND ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT, ARE HEREBY DISCLAIMED. BY ACCESSING THIS DOCUMENT YOU ACKNOWLEDGE THAT SUN SHALL IN NO EVENT BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, PUNITIVE, OR CONSEQUENTIAL DAMAGES THAT ARISE OUT OF YOUR USE OR FAILURE TO USE THE INFORMATION CONTAINED HEREIN. This Sun Alert notification contains Sun proprietary and confidential information. It is being provided to you pursuant to the provisions of your agreement to purchase services from Sun, or, if you do not have such an agreement, the Sun.com Terms of Use. This Sun Alert notification may only be used for the purposes contemplated by these agreements.

Rate and Review
Tell us what you think of the content of this page.
Excellent   Good   Fair   Poor  
Comments:
If you would like a reply to your comment, please submit your email address:
Note: We may not respond to all submitted comments.