The roll spec in the Calendar class has the following rule:
Roll rule. Larger fields are unchanged after the call. A larger field represents a larger unit of time. DAY_OF_MONTH is a larger field than HOUR.
However, the roll implementation in the GregorianCalendar class changes the larger fields when the DAY_OF_WEEK field is specified. That is, the ERA, YEAR and MONTH fields should not be changed by rolling with the DAY_OF_WEEK field. But it's too late to change the roll behavior.
The roll rule should be change to be consistent with the DAY_OF_WEEK roll implementation.
###@###.### 2004-11-06 01:50:51 GMT