This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug libgcj/17002] java.util.TimeZone.getDefault() is broken
- From: "jakub at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 22 Feb 2007 16:05:17 -0000
- Subject: [Bug libgcj/17002] java.util.TimeZone.getDefault() is broken
- References: <bug-17002-3639@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #6 from jakub at gcc dot gnu dot org 2007-02-22 16:05 -------
Subject: Bug 17002
Author: jakub
Date: Thu Feb 22 16:04:55 2007
New Revision: 122229
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=122229
Log:
libjava/
PR libgcj/17002
PR classpath/28550
* java/util/VMTimeZone.java (getDefaultTimeZoneId): To read
/etc/localtime, use ZoneInfo.readTZFile instead of
VMTimeZone.readtzFile. Get better timezone name for /etc/localtime,
either if it is a symlink or through /etc/sysconfig/clock.
(readSysconfigClockFile): New static method.
(readtzFile): Removed.
* java/lang/System.java: Add gnu.java.util.zoneinfo.dir to comments.
* posix.cc (_Jv_platform_initProperties): Set
gnu.java.util.zoneinfo.dir.
* sources.am (gnu_java_util_source_files): Add
classpath/gnu/java/util/ZoneInfo.java.
* Makefile.in: Regenerated.
* java/util/VMTimeZone.h: Regenerated.
* java/util/TimeZone.h: Regenerated.
* gnu/java/util/ZoneInfo.h: Generated.
libjava/classpath/
* java/util/Date.java (parse): Properly parse 09:01:02 as
hours/minutes/seconds, not as hours/minutes/year.
* java/util/SimpleTimeZone.java (SimpleTimeZone): Simplify
{start,end}TimeMode constructor by calling shorter constructor,
set {start,end}TimeMode fields after it returns.
(setStartRule): Don't adjust startTime into WALL_TIME. Set
startTimeMode to WALL_TIME.
(endStartRule): Similarly.
(getOffset): Handle properly millis + dstOffset overflowing into the
next day. Adjust startTime resp. endTime based on startTimeMode
resp. endTimeMode.
* java/util/TimeZone.java (zoneinfo_dir, availableIDs, aliases0): New
static fields.
(timezones): Remove synchronized keyword. Set zoneinfo_dir.
If non-null, set up aliases0 and don't put anything into
timezones0.
(defaultZone): Call getTimeZone instead of timezones().get.
(getDefaultTimeZone): Fix parsing of EST5 or EST5EDT6. Use
getTimeZoneInternal instead of timezones().get.
(parseTime): Parse correctly hour:minute.
(getTimeZoneInternal): New private method.
(getTimeZone): Do the custom ID checking first, canonicalize
ID for custom IDs as required by documentation. Call
getTimeZoneInternal to handle the rest.
(getAvailableIDs(int)): Add locking. Handle zoneinfo_dir != null.
(getAvailableIDs(File,String,ArrayList)): New private method.
(getAvailableIDs()): Add locking. Handle zoneinfo_dir != null.
* gnu/java/util/ZoneInfo.java: New file.
Added:
trunk/libjava/classpath/gnu/java/util/ZoneInfo.java
trunk/libjava/classpath/lib/gnu/java/util/ZoneInfo.class (with props)
trunk/libjava/gnu/java/util/ZoneInfo.h
Modified:
trunk/libjava/ChangeLog
trunk/libjava/Makefile.in
trunk/libjava/classpath/ChangeLog
trunk/libjava/classpath/java/util/Date.java
trunk/libjava/classpath/java/util/SimpleTimeZone.java
trunk/libjava/classpath/java/util/TimeZone.java
trunk/libjava/classpath/lib/java/util/Date.class
trunk/libjava/classpath/lib/java/util/SimpleTimeZone.class
trunk/libjava/classpath/lib/java/util/TimeZone$1.class
trunk/libjava/classpath/lib/java/util/TimeZone.class
trunk/libjava/classpath/lib/java/util/VMTimeZone.class
trunk/libjava/java/lang/System.java
trunk/libjava/java/util/TimeZone.h
trunk/libjava/java/util/VMTimeZone.h
trunk/libjava/java/util/VMTimeZone.java
trunk/libjava/posix.cc
trunk/libjava/sources.am
Propchange: trunk/libjava/classpath/lib/gnu/java/util/ZoneInfo.class
('svn:mime-type' added)
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17002