summaryrefslogtreecommitdiff
path: root/java/util/Calendar.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/util/Calendar.java')
-rw-r--r--java/util/Calendar.java17
1 files changed, 13 insertions, 4 deletions
diff --git a/java/util/Calendar.java b/java/util/Calendar.java
index 3e4fd8a34..c426eb5e5 100644
--- a/java/util/Calendar.java
+++ b/java/util/Calendar.java
@@ -951,10 +951,19 @@ public abstract class Calendar
*/
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();
+ }
}
/**