|
View:
New views
4 Messages
—
Rating Filter:
Alert me
|
|
|
<i18n dev> Jordan (Asia/Amman) versus SimpleTimeZoneHi,
I was debugging the following bug report: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=377 "TimeZone.getOffset() fails for some TZ" The issue is caused because there is a start rule in the Asia/Amman timezone that starts at the end of a day. SimpleTimeZone doesn't allow that. I have a simple "fix" (attached), but I haven't fully tested it yet, and don't know if there could be other problems with allowing a rule to start on the last milisecond of a day. I noticed there is a similar bug report here: http://bugs.sun.com/view_bug.do?bug_id=6851214 That is marked as "State 11-Closed, Verified, bug". There is however very little information on how this was fixed. Does anybody on this list know more? Thanks, Mark diff -r 348fce38de3f src/share/classes/java/util/SimpleTimeZone.java --- openjdk/jdk/src/share/classes/java/util/SimpleTimeZone.java Fri Jun 26 19:50:44 2009 +0400 +++ openjdk/jdk/src/share/classes/java/util/SimpleTimeZone.java Sat Aug 29 22:36:41 2009 +0200 @@ -1372,7 +1372,7 @@ throw new IllegalArgumentException( "Illegal start month " + startMonth); } - if (startTime < 0 || startTime >= millisPerDay) { + if (startTime < 0 || startTime > millisPerDay) { throw new IllegalArgumentException( "Illegal start time " + startTime); } @@ -1419,7 +1419,7 @@ throw new IllegalArgumentException( "Illegal end month " + endMonth); } - if (endTime < 0 || endTime >= millisPerDay) { + if (endTime < 0 || endTime > millisPerDay) { throw new IllegalArgumentException( "Illegal end time " + endTime); } |
|
|
Re: <i18n dev> Jordan (Asia/Amman) versus SimpleTimeZone2009/8/29 Mark Wielaard <mark@...>:
> Hi, > > I was debugging the following bug report: > http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=377 > "TimeZone.getOffset() fails for some TZ" > The issue is caused because there is a start rule in the Asia/Amman > timezone that starts at the end of a day. SimpleTimeZone doesn't allow > that. I have a simple "fix" (attached), but I haven't fully tested it > yet, and don't know if there could be other problems with allowing a > rule to start on the last milisecond of a day. > > I noticed there is a similar bug report here: > http://bugs.sun.com/view_bug.do?bug_id=6851214 > That is marked as "State 11-Closed, Verified, bug". > There is however very little information on how this was fixed. > Does anybody on this list know more? > That's because the list of releases with the fix only includes proprietary releases... sigh :( > Thanks, > > Mark > -- 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 |
|
|
Re: <i18n dev> Jordan (Asia/Amman) versus SimpleTimeZone
Hi Mark,
Yes - that's the same fix that was put in the JDK releases. The issue is only relevant for the Asia/Amman TZ as you mentioned. It was fixed in 6u15(b02), 5.0u20(b02) and 1.4.2_22(b02) as mentioned by bug report. Fix to JDK 7 is due shortly also. regards, Sean. Mark Wielaard wrote: Hi, I was debugging the following bug report: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=377 "TimeZone.getOffset() fails for some TZ" The issue is caused because there is a start rule in the Asia/Amman timezone that starts at the end of a day. SimpleTimeZone doesn't allow that. I have a simple "fix" (attached), but I haven't fully tested it yet, and don't know if there could be other problems with allowing a rule to start on the last milisecond of a day. I noticed there is a similar bug report here: http://bugs.sun.com/view_bug.do?bug_id=6851214 That is marked as "State 11-Closed, Verified, bug". There is however very little information on how this was fixed. Does anybody on this list know more? Thanks, Mark |
|
|
Re: <i18n dev> Jordan (Asia/Amman) versus SimpleTimeZoneHi Sean (CC distro-pkg-dev added),
On Sun, 2009-08-30 at 13:34 +0100, Sean Coffey wrote: > Mark Wielaard wrote: > > I was debugging the following bug report: > > http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=377 > > "TimeZone.getOffset() fails for some TZ" > > The issue is caused because there is a start rule in the Asia/Amman > > timezone that starts at the end of a day. SimpleTimeZone doesn't allow > > that. I have a simple "fix" (attached), but I haven't fully tested it > > yet, and don't know if there could be other problems with allowing a > > rule to start on the last milisecond of a day. > > > > I noticed there is a similar bug report here: > > http://bugs.sun.com/view_bug.do?bug_id=6851214 > > That is marked as "State 11-Closed, Verified, bug". > > There is however very little information on how this was fixed. > > Does anybody on this list know more? > > Yes - that's the same fix that was put in the JDK releases. > The issue is only relevant for the Asia/Amman TZ as you mentioned. I added it to IcedTea6 plus a new testcase for the general issue. 2009-08-30 Mark Wielaard <mark@...> PR377. SimpleTimeZone checks too strict for Asia/Amman TimeZone. * overlays/openjdk/jdk/test/java/util/SimpleTimeZone/EndOfDay.java: New test. * patches/icedtea-simpletimezone-relax.patch: New patch. * Makefile.am: Add new patch. * HACKING: Describe new patch. Thanks, Mark diff -r 188db4af2dc5 -r b8b498cda0b0 HACKING --- a/HACKING Fri Aug 28 09:18:57 2009 -0400 +++ b/HACKING Sun Aug 30 17:58:20 2009 +0200 @@ -114,8 +114,10 @@ * icedtea-lucene-crash.patch: Fix lucene bad code generation bug #6707044. * icedtea-6700047-loopopts.patch: Fix partial peeling issue, bug #6700047. * icedtea-6712835-ifnode.patch: Fix infinite loop in PhaseIterGVN::transform. -* icedtea-timezone.patch : Makes java only look for time zone information in /etc/sysconfig/clock if /etc/localtime is not found (fix - for rh-489586) +* icedtea-timezone.patch : Makes java only look for time zone information in + /etc/sysconfig/clock if /etc/localtime is not found (fix for rh-489586) +* icedtea-simpletimezone-relax.patch: Fix for PR377, Jordan end of day rule + in Asia/Amman TimeZone. SimpleTimeZone checks too strict. * icedtea-dnd-filelists.patch: Fix drag and drop behaviour when dragging a file list between JVMs (S5079469). Backported from OpenJDK. * icedtea-signed-types-hot6.patch: Make use of unsigned/signed types explicit. * openjdk/6648816.patch: Backport of regression (NPE) fix in AccessControlContext diff -r 188db4af2dc5 -r b8b498cda0b0 Makefile.am --- a/Makefile.am Fri Aug 28 09:18:57 2009 -0400 +++ b/Makefile.am Sun Aug 30 17:58:20 2009 +0200 @@ -540,6 +540,7 @@ patches/icedtea-rmi_amd64.patch \ patches/icedtea-tools.patch \ patches/icedtea-timezone.patch \ + patches/icedtea-simpletimezone-relax.patch \ patches/icedtea-use-system-tzdata.patch \ patches/icedtea-headers.patch \ patches/hotspot/$(HSBUILD)/icedtea-headers.patch \ diff -r 188db4af2dc5 -r b8b498cda0b0 overlays/openjdk/jdk/test/java/util/SimpleTimeZone/EndOfDay.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/overlays/openjdk/jdk/test/java/util/SimpleTimeZone/EndOfDay.java Sun Aug 30 17:58:20 2009 +0200 @@ -0,0 +1,23 @@ +/* + * @test + * @bug 0000377 + * @summary SimpleTimeZone should accept start/end rules at end of day + */ + +import java.util.Calendar; +import java.util.SimpleTimeZone; + +public class EndOfDay +{ + public static void main(String[] args) + { + SimpleTimeZone stz; + stz = new SimpleTimeZone(0, "End/Day", + Calendar.MARCH, -1, Calendar.FRIDAY, + 24 * 60 * 60 * 1000, + Calendar.APRIL, 1, Calendar.THURSDAY, + 24 * 60 * 60 * 1000, + 3600000); + System.err.println(stz); + } +} diff -r 188db4af2dc5 -r b8b498cda0b0 patches/icedtea-simpletimezone-relax.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/icedtea-simpletimezone-relax.patch Sun Aug 30 17:58:20 2009 +0200 @@ -0,0 +1,21 @@ +diff -r 348fce38de3f src/share/classes/java/util/SimpleTimeZone.java +--- openjdk/jdk/src/share/classes/java/util/SimpleTimeZone.java Fri Jun 26 19:50:44 2009 +0400 ++++ openjdk/jdk/src/share/classes/java/util/SimpleTimeZone.java Sat Aug 29 22:36:41 2009 +0200 +@@ -1372,7 +1372,7 @@ + throw new IllegalArgumentException( + "Illegal start month " + startMonth); + } +- if (startTime < 0 || startTime >= millisPerDay) { ++ if (startTime < 0 || startTime > millisPerDay) { + throw new IllegalArgumentException( + "Illegal start time " + startTime); + } +@@ -1419,7 +1419,7 @@ + throw new IllegalArgumentException( + "Illegal end month " + endMonth); + } +- if (endTime < 0 || endTime >= millisPerDay) { ++ if (endTime < 0 || endTime > millisPerDay) { + throw new IllegalArgumentException( + "Illegal end time " + endTime); + } |
| Free embeddable forum powered by Nabble | Forum Help |