Skip to content
Snippets Groups Projects
  • Jakub Jelinek's avatar
    b3502aa8
    re PR libgcj/17002 (java.util.TimeZone.getDefault() is broken) · b3502aa8
    Jakub Jelinek authored
    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.
    
    From-SVN: r122229
    b3502aa8
    History
    re PR libgcj/17002 (java.util.TimeZone.getDefault() is broken)
    Jakub Jelinek authored
    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.
    
    From-SVN: r122229