2009/12/3 Andrew John Hughes <gnu_and...@member.fsf.org>: > 2009/12/2 Bill Tims (RSI) <bt...@rsitex.com>: >> Andrew >> >> I've signed up and hopefully this will show up on the list. >> The program is attached. I ran it, with test2(), with strace and grep'd >> for javazi and got: >> >> 6205 stat64("/usr/share/javazi/ZoneInfoMappings", 0xb7328d4c) = -1 ENOENT >> (No such file or directory) >> ... >> 6205 access("/usr/lib/jvm/java-6-openjdk/jre/lib/zi/SystemV/CST6CDT", R_OK) >> = 0 >> 6205 stat64("/usr/lib/jvm/java-6-openjdk/jre/lib/zi/SystemV/CST6CDT", >> {st_mode=S_IFREG|0644, st_size=2288, ...}) = 0 >> 6205 open("/usr/lib/jvm/java-6-openjdk/jre/lib/zi/SystemV/CST6CDT", >> O_RDONLY|O_LARGEFILE) = 5 >> ...... >> 6205 read(5, "javazi\0\1\4\10\240\377\337\332\340\35\300\0!\377\340;"..., >> 2288) = 2288 >> > > Interesting... so you do have the IcedTea patched version, but Ubuntu > doesn't appear to install any timezone data in /usr/share/javazi. >
It appears you should have this directory from a package 'tzdata-java' (thanks to Xerxes Rånby for the information). >> If I read this right it is using the CST6CDT file to get the incorrect >> results. I'd rather not update the entire jre if I don't have to. >> Everything else is working file...so far. >> > > So OpenJDK6 is the one that's wrong? It may be that America/Chicago > should be being used, as Masayoshi says, or could just be outdated > timezone data in OpenJDK6. > >> Bill Tims >> Renaissance Systems, Inc. >> 5426 Guadalupe, Suite 100 >> Austin, TX 78751 >> 512-275-0344 >> >> >> -----Original Message----- >> From: gnu.andrew.ro...@gmail.com [mailto:gnu.andrew.ro...@gmail.com] On >> Behalf Of Andrew John Hughes >> Sent: Wednesday, December 02, 2009 2:10 PM >> To: Bill Tims (RSI) >> Cc: Masayoshi Okutsu; i18n-dev@openjdk.java.net >> Subject: Re: <i18n dev> Open Jdk Timezone bug? >> >> 2009/12/2 Bill Tims (RSI) <bt...@rsitex.com>: >>> Andrew/Masayoshi >>> >>> After some research it appears that we have the openjdk-6-jre-lib >>> package, version b11, installed and it is current according to Ubuntu. >> >> Ok, newer versions will also include the IcedTea version in java -version, >> >> $ /home/andrew/build/icedtea6/bin/java -version java version "1.6.0_0" >> OpenJDK Runtime Environment (IcedTea6 1.7pre-r1b34da20e2d1) (build >> 1.6.0_0-b17) OpenJDK 64-Bit Server VM (build 16.0-b10, mixed mode) >> >> but I think those that use OpenJDK6 b11 are too old to do so. >> >>> The latest openjdk-6-jre has the same version number. Masayoshi indicates >>> in an earlier email that the current version is 6u17. >> >> The latest is b17, the number Masayoshi quotes sounds like a version of the >> proprietary JDK6 (as you are using on Windows, 6u7 in that >> case) rather than an OpenJDK6 version. >> It would be nice if such responses were posted to the public list... >> >>> >>> When I run the app I wrote (I've added a dump of the version info from >>> system properties) that displays the offset for America/Chicago for 1900 I >>> get: >>> 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 >>> date=Mon Jan 01 00:00:00 CDT 1900 >>> 1900/0:-18000000 >>> 1900/1:-18000000 >>> 1900/2:-18000000 >>> 1900/3:-18000000 >>> 1900/4:-18000000 >>> 1900/5:-18000000 >>> 1900/6:-18000000 >>> 1900/7:-18000000 >>> 1900/8:-18000000 >>> 1900/9:-18000000 >>> 1900/10:-21600000 >>> 1900/11:-21600000 >>> >>> The display is year/month#:offset. >>> The same program running under the Sun jdk on windows gives me: >>> version=1.6.0_07 >>> vendor=Sun Microsystems Inc. >>> java.vm.specification.version=1.0 >>> java.vm.specification.vendor=Sun Microsystems Inc. >>> java.vm.version=10.0-b23 >>> java.vm.vendor=Sun Microsystems Inc. >>> timezone.id=America/Chicago >>> date=Mon Jan 01 00:00:00 CST 1900 >>> 1900/0:-21600000 >>> 1900/1:-21600000 >>> 1900/2:-21600000 >>> 1900/3:-21600000 >>> 1900/4:-21600000 >>> 1900/5:-21600000 >>> 1900/6:-21600000 >>> 1900/7:-21600000 >>> 1900/8:-21600000 >>> 1900/9:-21600000 >>> 1900/10:-21600000 >>> 1900/11:-21600000 >>> >> >> Do you have a simple test case (probably creating a Date object and printing >> it would be enough)? >> If you want to know what timezone data is actually being used, you can run >> something like strace -o out -f java TestApp and the resulting file, out, >> will show the C calls being made to open the timezone data files. >> My guess is that the Ubuntu version uses /usr/share/javazi rather than the >> OpenJDK timezone data (which, for OpenJDK6, is very outdated - fixing that >> is on my TODO list). >> This is due to the patch icedtea-use-system-tzdata.patch in IcedTea which >> contains: >> >> + SystemProperty* sp = Arguments::system_properties(); // Use the >> + system zoneinfo files, if present Arguments::PropertyList_add (&sp, >> + new >> SystemProperty("user.zoneinfo.dir", "/usr/share/javazi",true)); >> + >> >> A newer version was submitted upstream but has not yet been approved: >> >> http://mail.openjdk.java.net/pipermail/i18n-dev/2009-August/000136.html >> >> (it's debatable whether such a fix is needed over just a simple symlink). >> >>> Bill >>> >>> Bill Tims >>> Renaissance Systems, Inc. >>> 5426 Guadalupe, Suite 100 >>> Austin, TX 78751 >>> 512-275-0344 >>> >>> >>> -----Original Message----- >>> From: gnu.andrew.ro...@gmail.com [mailto:gnu.andrew.ro...@gmail.com] >>> On Behalf Of Andrew John Hughes >>> Sent: Wednesday, December 02, 2009 8:54 AM >>> To: Masayoshi Okutsu >>> Cc: Bill Tims (RSI); i18n-dev@openjdk.java.net >>> Subject: Re: <i18n dev> Open Jdk Timezone bug? >>> >>> 2009/12/1 Masayoshi Okutsu <masayoshi.oku...@sun.com>: >>>> What is the time zone ID you are using? >>>> >>>> Thanks, >>>> Masayoshi >>>> >>>> On 12/1/2009 1:55 AM, Bill Tims (RSI) wrote: >>>>> >>>>> From what I can find, this appears to be the right place to post >>>>> this, if I'm wrong I would appreciate a pointer to the proper location. >>>>> The database our app has to talk to has January 1,1900 12:00:00 am >>>>> date in it. When I load the value into a open jdk date object >>>>> (using Ubuntu/JBoss 4.2.3 GA-jdk6) I get December 31, 1899 23:00:00. >>>>> When I do the same thing on my dev box (Win XP/Sun jre 1.6.0_07) I >>>>> get January 1, 1900 12:00:00 am. I wrote a test program that prints >>>>> out the Timezone info for 1898-1902 and it appears that the open jdk >>>>> has a daylight savings time starting on Jan 1, 1900 through Oct 1, >>>>> 1900 and the sun version doesn't. According to Wikipedia, Daylight >>>>> savings wasn't suggested until 1907. >>>>> I can't find anything on the web that suggests where the timezone >>>>> info is kept or how complicated it will be to rebuild whatever jar >>>>> file is required. Can someone point me to the proper source file and >>>>> suggest how involved building the fix will be? >>>>> Thanks >>>>> Bill >>>>> ! >>>>> >>>>> Bill Tims >>>>> >>>>> Renaissance Systems, Inc. >>>>> >>>>> >>>>> >>>> >>> >>> You don't give any details of the OpenJDK version - what does 'java >>> -version' give on your Ubuntu box? >>> If this is the system OpenJDK build, then it's an IcedTea build and thus >>> includes a patch to use the system timezone data which is likely to be more >>> up-to-date than that bundled with Sun's JDK. >>> -- >>> Andrew :-) >>> >>> Free Java Software Engineer >>> Red Hat, Inc. (http://www.redhat.com) >>> >>> Support Free Java! >>> Contribute to GNU Classpath and the OpenJDK >>> http://www.gnu.org/software/classpath >>> http://openjdk.java.net >>> >>> PGP Key: 94EFD9D8 (http://subkeys.pgp.net) >>> Fingerprint: F8EF F1EA 401E 2E60 15FA 7927 142C 2591 94EF D9D8 >>> >> >> >> >> -- >> Andrew :-) >> >> Free Java Software Engineer >> Red Hat, Inc. (http://www.redhat.com) >> >> Support Free Java! >> Contribute to GNU Classpath and the OpenJDK >> http://www.gnu.org/software/classpath >> http://openjdk.java.net >> >> PGP Key: 94EFD9D8 (http://subkeys.pgp.net) >> Fingerprint: F8EF F1EA 401E 2E60 15FA 7927 142C 2591 94EF D9D8 >> > > > > -- > Andrew :-) > > Free Java Software Engineer > Red Hat, Inc. (http://www.redhat.com) > > Support Free Java! > Contribute to GNU Classpath and the OpenJDK > http://www.gnu.org/software/classpath > http://openjdk.java.net > > PGP Key: 94EFD9D8 (http://subkeys.pgp.net) > Fingerprint: F8EF F1EA 401E 2E60 15FA 7927 142C 2591 94EF D9D8 > -- Andrew :-) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and the OpenJDK http://www.gnu.org/software/classpath http://openjdk.java.net PGP Key: 94EFD9D8 (http://subkeys.pgp.net) Fingerprint: F8EF F1EA 401E 2E60 15FA 7927 142C 2591 94EF D9D8