-
Bug
-
Resolution: Unresolved
-
P4
-
8u431, 24.0.1
-
generic
-
generic
A DESCRIPTION OF THE PROBLEM :
GregorianCalendar.roll(Calendar.DAY_OF_WEEK, true) incorrectly modifies the year field when rolling from Saturday to Sunday across year boundaries, violating the documented behavior that roll() should not change larger fields.
---------- BEGIN SOURCE ----------
import java.util.Calendar;
import java.util.GregorianCalendar;
public class RollTest {
public static void main(String args[]) {
Calendar cal = new GregorianCalendar();
cal.set(2020, Calendar.JANUARY, 4);
System.out.println("Before roll: " + cal.getTime() + ", Year: " + cal.get(Calendar.YEAR));
cal.roll(Calendar.DAY_OF_WEEK, 1);
System.out.println("After roll: " + cal.getTime() + ", Year: " + cal.get(Calendar.YEAR));
}
}
---------- END SOURCE ----------
GregorianCalendar.roll(Calendar.DAY_OF_WEEK, true) incorrectly modifies the year field when rolling from Saturday to Sunday across year boundaries, violating the documented behavior that roll() should not change larger fields.
---------- BEGIN SOURCE ----------
import java.util.Calendar;
import java.util.GregorianCalendar;
public class RollTest {
public static void main(String args[]) {
Calendar cal = new GregorianCalendar();
cal.set(2020, Calendar.JANUARY, 4);
System.out.println("Before roll: " + cal.getTime() + ", Year: " + cal.get(Calendar.YEAR));
cal.roll(Calendar.DAY_OF_WEEK, 1);
System.out.println("After roll: " + cal.getTime() + ", Year: " + cal.get(Calendar.YEAR));
}
}
---------- END SOURCE ----------
- duplicates
-
JDK-6191841 (cal) API: Calendar.roll spec should clarify DAY_OF_WEEK behavior
-
- Closed
-
- relates to
-
JDK-5090555 REGRESSION: incorrect GregorianCalendar.roll(DAY_OF_WEEK) around year boundaries
-
- Resolved
-