<i18n dev> Open Jdk Timezone bug?
Bill Tims (RSI)
btims at rsitex.com
Thu Dec 3 06:31:31 PST 2009
Andrew/Masayoshi
1) I installed openjdk-6-jdk(I only had the jre-lib installed
before) and reran the following code. This didn't seem to make any
difference.
2) Andrew's last email references the tzdata-java package.
After the run with the jdk installed I installed the tzdata-java
package and now have the /usr/share/javazi/.
Yet I still get the same results with different tz data AND it
still uses CST6CDT even after I told it to use America/Chicago. I'm
guessing that the ZoneInfoMappings file is causing this, the Chicago
file seems to be a subset of the CST6CDT file.
When I use zdump to dump the CST6CDT file (it doesn't seem to
matter which one I use, I get the same results for all of them), the
first few lines are:
CST6CDT Fri Dec 13 20:45:52 1901 UTC = Fri Dec 13 14:45:52 1901 CST
isdst=0 gmtoff=-21600
CST6CDT Sat Dec 14 20:45:52 1901 UTC = Sat Dec 14 14:45:52 1901 CST
isdst=0 gmtoff=-21600
CST6CDT Sun Mar 31 07:59:59 1918 UTC = Sun Mar 31 01:59:59 1918 CST
isdst=0 gmtoff=-21600
CST6CDT Sun Mar 31 08:00:00 1918 UTC = Sun Mar 31 03:00:00 1918 CDT
isdst=1 gmtoff=-18000
The first instance CDT is in 1918, I don't understand why the
offset is being used. I am really getting confused here.
Bill
public void test2() {
System.out.println("version="+System.getProperty("java.version"));
System.out.println("vendor="+System.getProperty("java.vendor"));
System.out.println("java.vm.specification.version="+System.getProperty("
java.vm.specification.version"));
System.out.println("java.vm.specification.vendor="+System.getProperty("j
ava.vm.specification.vendor"));
System.out.println("java.vm.version="+System.getProperty("java.vm.versio
n"));
System.out.println("java.vm.vendor="+System.getProperty("java.vm.vendor"
));
Calendar cal = Calendar.getInstance();
TimeZone tz = TimeZone.getDefault();
tz.setID("America/Chicago");
System.out.println("timezone.id="+tz.getID());
cal.set(1900, Calendar.JANUARY,1,0,0,0);
System.out.println("January, 1900 timezone
offset:"+tz.getOffset(GregorianCalendar.AD, 1900,0, 1, 1, 1));
}
and got:
version=1.6.0_0
vendor=Sun Microsystems Inc.
java.vm.specification.version=1.0
java.vm.specification.vendor=Sun Microsystems Inc.
java.vm.version=1.6.0_0-b11
java.vm.vendor=Sun Microsystems Inc.
timezone.id=America/Chicago
January, 1900 timezone offset:-18000000
========================================================================
===================
The relevant portion of the strace with the openjdk-6-jdk is:
14565 gettimeofday({1259842962, 719472}, NULL) = 0
14565 stat64("/usr/share/javazi/ZoneInfoMappings", 0xb735dd4c) = -1
ENOENT (No such file or directory)
14565 gettimeofday({1259842962, 719759}, NULL) = 0
14565 _llseek(3, 48488574, [48488574], SEEK_SET) = 0
14565 read(3,
"PK\3\4\n\0\0\0\0\0\255\236>:H\250\221\265$\5\0\0$\5\0\0"..., 30) = 30
14565 _llseek(3, 48488642, [48488642], SEEK_SET) = 0
14565 read(3,
"\312\376\272\276\0\0\0001\0R\t\0\22\0000\n\0\23\0001\7"..., 1316) =
1316
14565 gettimeofday({1259842962, 720973}, NULL) = 0
14565 gettimeofday({1259842962, 721007}, NULL) = 0
14565 gettimeofday({1259842962, 721021}, NULL) = 0
14565 gettimeofday({1259842962, 721026}, NULL) = 0
14565 gettimeofday({1259842962, 721853}, NULL) = 0
14565 gettimeofday({1259842962, 722020}, NULL) = 0
14565 gettimeofday({1259842962, 722175}, NULL) = 0
14565 gettimeofday({1259842962, 722269}, NULL) = 0
14565 gettimeofday({1259842962, 722276}, NULL) = 0
14565 gettimeofday({1259842962, 722279}, NULL) = 0
14565 gettimeofday({1259842962, 722838}, NULL) = 0
14565 access("/usr/lib/jvm/java-6-openjdk/jre/lib/zi/SystemV/CST6CDT",
R_OK) = 0
14565 stat64("/usr/lib/jvm/java-6-openjdk/jre/lib/zi/SystemV/CST6CDT",
{st_mode=S_IFREG|0644, st_size=2288, ...}) = 0
14565 open("/usr/lib/jvm/java-6-openjdk/jre/lib/zi/SystemV/CST6CDT",
O_RDONLY|O_LARGEFILE) = 5
14565 fstat64(5, {st_mode=S_IFREG|0644, st_size=2288, ...}) = 0
14565 fcntl64(5, F_GETFD) = 0
14565 fcntl64(5, F_SETFD, FD_CLOEXEC) = 0
14565 read(5,
"javazi\0\1\4\10\240\377\337\332\340\35\300\0!\377\340;"..., 2288) =
2288
14565 close(5) = 0
========================================================================
===================
This is strace data generated after the tzdata-java package was
installed.
14662 stat64("/usr/share/javazi/ZoneInfoMappings",
{st_mode=S_IFREG|0644, st_size=14640, ...}) = 0
14662 gettimeofday({1259843375, 580436}, NULL) = 0
14662 _llseek(3, 48488574, [48488574], SEEK_SET) = 0
14662 read(3,
"PK\3\4\n\0\0\0\0\0\255\236>:H\250\221\265$\5\0\0$\5\0\0"..., 30) = 30
14662 _llseek(3, 48488642, [48488642], SEEK_SET) = 0
14662 read(3,
"\312\376\272\276\0\0\0001\0R\t\0\22\0000\n\0\23\0001\7"..., 1316) =
1316
14662 gettimeofday({1259843375, 581372}, NULL) = 0
14662 gettimeofday({1259843375, 581552}, NULL) = 0
14662 gettimeofday({1259843375, 581750}, NULL) = 0
14662 gettimeofday({1259843375, 581937}, NULL) = 0
14662 gettimeofday({1259843375, 582143}, NULL) = 0
14662 gettimeofday({1259843375, 582338}, NULL) = 0
14662 gettimeofday({1259843375, 582509}, NULL) = 0
14662 gettimeofday({1259843375, 582682}, NULL) = 0
14662 gettimeofday({1259843375, 582865}, NULL) = 0
14662 gettimeofday({1259843375, 583036}, NULL) = 0
14662 gettimeofday({1259843375, 583206}, NULL) = 0
14662 access("/usr/share/javazi/SystemV/CST6CDT", R_OK) = 0
14662 stat64("/usr/share/javazi/SystemV/CST6CDT", {st_mode=S_IFREG|0644,
st_size=2288, ...}) = 0
14662 open("/usr/share/javazi/SystemV/CST6CDT", O_RDONLY|O_LARGEFILE) =
5
14662 fstat64(5, {st_mode=S_IFREG|0644, st_size=2288, ...}) = 0
14662 fcntl64(5, F_GETFD) = 0
14662 fcntl64(5, F_SETFD, FD_CLOEXEC) = 0
14662 read(5,
"javazi\0\1\4\10\240\377\337\332\340\35\300\0!\377\340;"..., 2288) =
2288
14662 close(5) = 0
Bill Tims
Renaissance Systems, Inc.
5426 Guadalupe, Suite 100
Austin, TX 78751
512-275-0344
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/i18n-dev/attachments/20091203/37110c8a/attachment-0001.html
More information about the i18n-dev
mailing list