This PR fixes the bug which occurred when `Calendar.roll(WEEK_OF_YEAR)` rolled into a minimal first week with an invalid `WEEK_OF_YEAR` and `DAY_OF_WEEK` combo.
For example, Rolling _Monday, 30 December 2019_ by 1 week produced _Monday, 31 December 2018_, which is incorrect. This is because `WEEK_OF_YEAR` is rolled from 52 to 1, and the original `DAY_OF_WEEK` is 1. However, there is no Monday in week 1 of 2019. This is exposed when a future method calls `Calendar.complete()`, which eventually calculates a `fixedDate` with the invalid `WEEK_OF_YEAR` and `DAY_OF_WEEK` combo. To prevent this, a check is added for rolls into week 1, which determines if the first week is minimal. If it is indeed minimal, then it is checked if `DAY_OF_WEEK` exists in that week, if not, `WEEK_OF_YEAR` must be incremented by one. After the fix, Rolling _Monday, 30 December 2019_ by 1 week produces _Monday, 7 January 2019_ ------------- Commit messages: - method positioning - Bug fix to GregCal with accompanying test Changes: https://git.openjdk.org/jdk/pull/13031/files Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=13031&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8225641 Stats: 167 lines in 2 files changed: 165 ins; 0 del; 2 mod Patch: https://git.openjdk.org/jdk/pull/13031.diff Fetch: git fetch https://git.openjdk.org/jdk pull/13031/head:pull/13031 PR: https://git.openjdk.org/jdk/pull/13031