RFR: JDK-8316435: sun.util.calendar.CalendarSystem subclassing should be restricted [v2]
Justin Lu
jlu at openjdk.org
Tue Sep 19 20:53:38 UTC 2023
> Please review this PR which restricts sub-classing of the internal calendar system in sun.util.calendar to only the existing implementations. Drive by cleanup included.
>
> As the implementation is long-standing and complete with no intent for future sub-classing, the CalendarSystem should be made sealed. Modifiers adjusted accordingly (`JulianCalendar.Date` must now have package visibility).
>
>
> This system has the following structure,
>
> `CalendarSystem` extended by `AbstractCalendar` extended by `BaseCalendar` extended by
> (`Gregorian, JulianCalendar, LocalGregorianCalendar`)
>
> `CalendarDate` extended by `BaseCalendar.Date` extended by
> (`Gregorian.Date, ImmutableGregorianDate, JulianCalendar.Date, LocalGregorianCalendar.Date`)
>
> Additionally, CalendarUtils was made `final`, as it is a utility class composed of static util methods.
Justin Lu has updated the pull request incrementally with six additional commits since the last revision:
- Replace sprintf0d with Formatter
- setCache should not be overridden to be unsupported in IGD
- Cleanup immutableGreg
- Clarify the class with comments, also overide setCache to throw an exception
- Use Override annotation within calendar system
- Clarify private constructor with comment
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/15803/files
- new: https://git.openjdk.org/jdk/pull/15803/files/b6915efe..84a346ae
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=15803&range=01
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=15803&range=00-01
Stats: 185 lines in 11 files changed: 95 ins; 48 del; 42 mod
Patch: https://git.openjdk.org/jdk/pull/15803.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/15803/head:pull/15803
PR: https://git.openjdk.org/jdk/pull/15803
More information about the core-libs-dev
mailing list