My Oracle Support Banner

After Applying Patch 5865568 The Oracle JVM 10.1 is affected by Sun JDK bugs 6530336 and 6466476. Oracle 9 and 10.2 unaffected. (Doc ID 418617.1)

Last updated on APRIL 08, 2025

Applies to:

Oracle Database - Enterprise Edition - Version 8.1.7.0 to 10.2.0.1 [Release 8.1.7 to 10.2]
Information in this document applies to any platform.
Information in this document applies to any platform.

Purpose

This bulletin explains the effect on the Oracle JVM (OJVM) of Sun JDK bugs 6530336 and 6466476 (contained in Sun alert 102836), which were introduced by time zone updates in the JDK.


Oracle 10.1 is affected by these issues when OJVM Feb-2007 Time Zone Update is installed (patch 5865568).
Oracle 10.1 is not affected if no OJVM Time Zone Updates are installed, or if the the March-2006 Time Zone Update is installed (see <note:416938.1> for patch numbers)
Oracle 9.2 and 10.2 are not affected.

Note that since 10-March-2007 the readme file of the 5865568 patch contains the workaround instructions for this issue. If these have been followed then you will not be affected.

This note contains the testcases from the Sun bugs in an Oracle Java Stored Procedure format to show that the OJVM is affected in 10.1 only, and it provides workarounds for these problems. The testcases can then be used to verify the problem has been resolved.


Scope

This note covers the JVM inside the Oracle database.

The Oracle time zone files, which provide time zone knowledge to the other parts of the database, are completely unrelated to any JDK or Java changes, and are therefore completely unaffected by these issues.

Oracle does not deliver patches for the JDKs and JREs that are shipped with various Oracle products, including the database. For these JDKs and JREs please refer to the 3rd party supplier of the JDK/JRE fixes that might have introduced problems with some time zones.

Note that the Oracle database does not use the JDK in the Oracle home of a database installation. The Oracle database only has time zone information in the OJVM and in the Oracle time zone files. As stated above, the Oracle time zone files are completely unrelated to these issues.
Therefore the Oracle database versions 9.2 and 10.2 are not affected by these issues.
For Oracle 10.1 the only effect is when the OJVM is used to run Java Stored Procedures inside the database which use time zone conversions with the EST, EDT, MST, MDT, HST and HDT time zones.

Details

To view full details, sign in with your My Oracle Support account.

Don't have a My Oracle Support account? Click to get started!


In this Document
Purpose
Scope
Details
 Sun JDK bugs 6530336 and 6466476 Information on these bugs can be found in the following locations:
Sun Alert 102836
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6466476
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6530336

Bug 6466476 shows that the time zones EST and MST are no longer affected by DST after a JDK time zone update.
Bug 6530336 shows that the underlying issues from bug 6466476 can cause incorrect time conversions between time zones when using the EDT and MDT indicators.

For information regarding how these issues affect the JDKs and JREs outside the database, please refer to your supplier of the fixes which introduced these issues. This note will only cover the Oracle JVM in the database, for which Oracle produces and supplies the time zone update patches.

 Oracle JVM in Oracle8i and Oracle9 not affected
In Oracle8i and Oracle9 the affected time zones do not change their behavior after the Oracle JVM Time Zone Updates are applied. Therefore neither of the Sun problems affect these Oracle versions..

 Oracle JVM in Oracle 10.1 affected when patch 5865568 is installed
When the Oracle JVM Feb-2007 Time Zone Update (patch 5865568, see also <note:414742.1>) is installed in Oracle 10.1, the new rules for EST, MST and HST are followed as described in Sun JDK bug 6466476. Therefore these time zones no longer use DST, and the conversion problems described in Sun JDK bug 6530336 are present in this version of the Oracle JVM.

This issue does not affect the March-2006 OJVM Time Zone Update (patch 5075511 for Oracle 10.1, see also <note:416938.1>).

This issue is known as Oracle bug 5926148.

The issue from Sun JDK bug 6530336 will affect you if you use Java Stored Procedures in the Oracle database 10.1 that do conversions to and from the EDT, MDT and HDT time zones.
The issue from Sun JDK bug 6466476 will affect you if you use Java Stored Procedures in the Oracle database 10.1 which rely on the EST, MST and HST time zones to be "DST aware". For these time zones alternatives like America/New_York can be used.

Note that this issue does not affect the Oracle datatypes TIMESTAMP WITH TIME ZONE and TIMESTAMP WITH LOCAL TIME ZONE. These datatypes take their time zone knowledge from the Oracle time zone files which are completely unaffected by Java issues.

 Solution for Oracle 10.1 (do not use on 10.2) The following steps can be taken to resolve this problem:
Note that when the fix for bug 5926148 will be available this will essentially do the same thing through a script.
Also note that since 10-March-2007 these removal steps are also part of the readme as post-install instructions patch 5865568, if these steps were followed during the application of that patch then there is no further need to change anything, the database will not be affected by these problems (the delivered patch did not change, only the readme was changed to reflect these extra steps).
 
Note that this workaround should only be used on Oracle 10.1.
On Oracle 10.2 there is no need to use this, and using these steps will unload the normal Oracle Time Zone Update patches completely on that version. Therefore these steps should only be used in Oracle 10.1
 Oracle JVM in Oracle 10.2 not affectedIn the Oracle JVM in Oracle 10.2 the EST, MST and HST time zones do not change their behavior after the Oracle JVM Time Zone Updates are applied. Therefore neither of the Sun problems affect Oracle 10.2.

 Running the Sun testcases as Java Stored Procedures
 The following 2 tests are provided to show the testcases of the Sun JDK bugs 6530336 and 6466476 as Java Stored Procedures in the Oracle database. If you wish you can use these to verify that the problem does, or does not, exist in your database. You can also use this to verify the problem has been resolved after the workaround has been used.

Testcase for bug 6530336
 Output of testcase for bug 6530336 in Oracle 10.2:
 
As this output shows, the time of 14:00 in EDT is correctly converted to 11:00 Pacific time. The testcase in a JDK which is affected by this problem would show 12:00, as per the Sun bug report mentioned above.
Therefore when you run this testcase in a 10.1 system you will see the incorrect time of 12:00. After using the workaround the time will be correct.

Note that on Oracle9 the "alter session set time_zone" statement has no effect on the current time zone of the OJVM. To test conversion to different time zones in Oracle9 you need to exit sql*plus, then set the time zone in your OS environment, and then restart sql*plus to run the test.

Testcase for bug 6466476

 Output of testcase for bug 6466476 in 10.2:
 
As this output shows, the EST time zone in Oracle is still using DST ("useDaylight=true"), even after the OJVM Time Zone Updates are installed.
Note that the JDK version is returned as 1.4.2_04 in this test because the Oracle JVM time zone updates do not increase the JDK version, they only update the time zone rules in the OJVM.


 Why and How is the Oracle JVM Different that Sun's JDK?The Oracle JVM running in the database is a "clean room" implementation of the Java virtual machine, certified to be compliant to the JDK specification using Sun's standard Test Compliance Kit. It uses a nearly identical set of Java class libraries as Sun's JDK release, but is embedded in the Oracle database, making use of RDBMS facilities for memory management, file access, security, and so on using Oracle's internal Virtual Operating System layer. As such, bugs that are reported against Sun's JDK may not appear in the Oracle JVM and runtime implementation inside the database, and some are not applicable to it (in the case of UI-centric issues). As of Oracle 10g and previous releases, all Java class libraries and resources for Java execution in the Oracle database are contained in the database itself. Time zone information for JDK 1.4, the major version supported in Oracle 10g, is specified in a data file for the JDK. This is loaded into the Oracle database which therefore must be replaced using the CREATE OR REPLACE JAVA SYSTEM command to fix the issue recently identified by Sun and addressed in this Metalink Note.
Oracle monitors critical bug reports from Sun, particularly security issues, and reviews their applicability to the Oracle JVM on an ongoing basis. In the particular case of DST changes in the US now (and our previous handling of the issue in the earlier Australian timezone changes in 2006), Oracle has closely coordinated the necessary fixes specific to the Oracle JVM with fixes Sun and other vendors are providing for specific platforms.
 Change Log 2007-03-12 18:42 GMT: Added statements that readme instructions for patch 5865568 now contain the solution. 2007-03-10 18:13 GMT: Added link to Sun Alert on this issue and AS note covering this.
2007-03-09 23:59 GMT: This issue only affects Feb2007 JVM TZ update (patch 5865568). Not the earlier patches from March-2006.
2007-03-09 21:49 GMT: Added change log and "Why and How" section.

References

My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.