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;
}
/**