From cc9556b92431b1e4300338cf3363607c24738cba Mon Sep 17 00:00:00 2001 From: Guilhem Lavaux Date: Thu, 25 Sep 2003 17:25:15 +0000 Subject: [PATCH] SimpleDateFormat.java (parse): Don't use class calendar field. 2003-09-25 Guilhem Lavaux * java/text/SimpleDateFormat.java (parse): Don't use class calendar field. From-SVN: r71782 --- libjava/ChangeLog | 5 +++++ 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 + + * java/text/SimpleDateFormat.java (parse): Don't use class calendar + field. + 2003-09-25 Michael Koch * 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) {