diff options
| author | mkoch <mkoch@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-09-25 17:25:15 +0000 |
|---|---|---|
| committer | mkoch <mkoch@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-09-25 17:25:15 +0000 |
| commit | efcab8ce0ddbfa26298b3cb813b554cf655ff4cf (patch) | |
| tree | 84d608672f762e957ce44f556ecca897570a2a18 /libjava | |
| parent | e3d8c102f08869e9d12dcc47483c066b9deb31aa (diff) | |
| download | ppe42-gcc-efcab8ce0ddbfa26298b3cb813b554cf655ff4cf.tar.gz ppe42-gcc-efcab8ce0ddbfa26298b3cb813b554cf655ff4cf.zip | |
2003-09-25 Guilhem Lavaux <guilhem@kaffe.org>
* java/text/SimpleDateFormat.java (parse): Don't use class calendar
field.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@71782 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava')
| -rw-r--r-- | libjava/ChangeLog | 5 | ||||
| -rw-r--r-- | libjava/java/text/SimpleDateFormat.java | 23 |
2 files changed, 17 insertions, 11 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 6271be408a4..873661ac51b 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,8 @@ +2003-09-25 Guilhem Lavaux <guilhem@kaffe.org> + + * java/text/SimpleDateFormat.java (parse): Don't use class calendar + field. + 2003-09-25 Michael Koch <konqueror@gmx.de> * gnu/java/nio/SelectorImpl.java diff --git a/libjava/java/text/SimpleDateFormat.java b/libjava/java/text/SimpleDateFormat.java index b43c6cd86d4..f41a27bbc4d 100644 --- a/libjava/java/text/SimpleDateFormat.java +++ b/libjava/java/text/SimpleDateFormat.java @@ -547,8 +547,9 @@ public class SimpleDateFormat extends DateFormat { int fmt_index = 0; int fmt_max = pattern.length(); + Calendar loc_calendar = (Calendar)calendar.clone(); - calendar.clear(); + loc_calendar.clear(); boolean saw_timezone = false; int quote_start = -1; boolean is2DigitYear = false; @@ -696,8 +697,8 @@ public class SimpleDateFormat extends DateFormat found_zone = true; saw_timezone = true; TimeZone tz = TimeZone.getTimeZone (strings[0]); - calendar.setTimeZone (tz); - calendar.set (Calendar.ZONE_OFFSET, tz.getRawOffset ()); + loc_calendar.setTimeZone (tz); + loc_calendar.set (Calendar.ZONE_OFFSET, tz.getRawOffset ()); offset = 0; if (k > 2 && tz instanceof SimpleTimeZone) { @@ -764,17 +765,17 @@ public class SimpleDateFormat extends DateFormat } // Assign the value and move on. - calendar.set(calendar_field, value); + loc_calendar.set(calendar_field, value); } if (is2DigitYear) { // Apply the 80-20 heuristic to dermine the full year based on // defaultCenturyStart. - int year = defaultCentury + calendar.get(Calendar.YEAR); - calendar.set(Calendar.YEAR, year); - if (calendar.getTime().compareTo(defaultCenturyStart) < 0) - calendar.set(Calendar.YEAR, year + 100); + int year = defaultCentury + loc_calendar.get(Calendar.YEAR); + loc_calendar.set(Calendar.YEAR, year); + if (loc_calendar.getTime().compareTo(defaultCenturyStart) < 0) + loc_calendar.set(Calendar.YEAR, year + 100); } try @@ -783,10 +784,10 @@ public class SimpleDateFormat extends DateFormat { // Use the real rules to determine whether or not this // particular time is in daylight savings. - calendar.clear (Calendar.DST_OFFSET); - calendar.clear (Calendar.ZONE_OFFSET); + loc_calendar.clear (Calendar.DST_OFFSET); + loc_calendar.clear (Calendar.ZONE_OFFSET); } - return calendar.getTime(); + return loc_calendar.getTime(); } catch (IllegalArgumentException x) { |

