Hi again,

This commit reorders Calendar.complete() and moves the setting
of isTimeSet in order to match Sun's implementation.

Cheers,
Gary
Index: ChangeLog
===================================================================
RCS file: /cvsroot/classpath/classpath/ChangeLog,v
retrieving revision 1.9239.2.5
diff -u -r1.9239.2.5 ChangeLog
--- ChangeLog   13 Apr 2007 10:48:41 -0000      1.9239.2.5
+++ ChangeLog   13 Apr 2007 11:46:29 -0000
@@ -1,3 +1,10 @@
+2007-04-13  Gary Benson  <[EMAIL PROTECTED]>
+
+       * java/util/Calendar.java
+       (complete): Reorder, and set isTimeSet.
+       * java/util/GregorianCalendar.java
+       (computeTime): Do not set isTimeSet.
+
 2007-04-13  Gary Benson  <[EMAIL PROTECTED]>
 
        * java/util/Calendar.java
Index: java/util/Calendar.java
===================================================================
RCS file: /cvsroot/classpath/classpath/java/util/Calendar.java,v
retrieving revision 1.52.4.3
diff -u -r1.52.4.3 Calendar.java
--- java/util/Calendar.java     13 Apr 2007 10:48:42 -0000      1.52.4.3
+++ java/util/Calendar.java     13 Apr 2007 11:46:29 -0000
@@ -951,10 +951,19 @@
    */
   protected void complete()
   {
-    if (! isTimeSet)
-      computeTime();
-    if (! areFieldsSet)
-      computeFields();
+    // computeFields() sets areFieldsSet, but computeTime()
+    // does not set isTimeSet.  This seems odd, but it's what
+    // Sun's implementation does.
+    if (!isTimeSet)
+      {
+       computeTime();
+       isTimeSet = true;
+       computeFields();
+      }
+    else if (!areFieldsSet)
+      {
+       computeFields();
+      }
   }
 
   /**
Index: java/util/GregorianCalendar.java
===================================================================
RCS file: /cvsroot/classpath/classpath/java/util/GregorianCalendar.java,v
retrieving revision 1.49.4.3
diff -u -r1.49.4.3 GregorianCalendar.java
--- java/util/GregorianCalendar.java    13 Apr 2007 09:18:00 -0000      1.49.4.3
+++ java/util/GregorianCalendar.java    13 Apr 2007 11:46:29 -0000
@@ -723,8 +723,6 @@
                                       - zone.getRawOffset());
 
     time -= rawOffset + dstOffset;
-
-    isTimeSet = true;
   }
 
   /**

Reply via email to