On Tue, 14 May 2024 21:53:24 GMT, Phil Race <p...@openjdk.org> wrote:
>> If you're currently reviewing this PR, thank you! >> Most fixes here are according to the reports by the since checker tool in >> #18934 and are pretty simple. >> >> To make reviewing easier >> - `BasicSliderUI` has the constructor `public BasicSliderUI(JSlider b)` for >> a long time so the default constructor (without parameters) didn't exist >> until JDK 16 >> >> For the `package-info` files, it is pretty hard to find source code of JDK >> 1-5 so I used the `grep` command to find the oldest instance of an `@since` >> in those packages. >> >> I found instances of `@since 1.1` in the other packages but >> `javax/swing/plaf/synth/package-info.java` might be worth checking as most >> classes there had no `@since`. > > src/java.desktop/share/classes/javax/swing/package-info.java line 153: > >> 151: * @serial exclude >> 152: * >> 153: * @since 1.1 > > This isn't right. Where did you get this from ? > Swing only became part of the JDK in JDK 1.2 > It was an unbundled library before then. > If you find any @since 1.1 tags in the Swing API they are a mistake. My bad then, this is a mistake. > src/java.desktop/share/classes/javax/swing/plaf/basic/BasicSliderUI.java line > 154: > >> 152: * Constructs a {@code BasicSliderUI}. >> 153: * >> 154: * @since 16 > > Hmm, the *explicit* default constructor was added in JDK 16, but it was > implicit before then. > So I am not 100% sure what the right answer is - the same as the class, or > when it was explicitly added. When mapping methods and when they first appeared (by using the historical record built into javac) I use an id in the form of `method: <erased-return-descriptor> <binary-name-of-enclosing-class>.<method-name>(<ParameterDescriptor>)` so for covariant overrides in general, when the return type changes I consider it to be a new method. Looking at the contents of the dictionnary: This explicit constructor existed for a long time but then this new was added a new one was added in JDK 16 | Key | Value | | ------------- | ------------- | | `method: void javax.swing.plaf.basic.BasicSliderUI.<init>(javax.swing.JSlider):` | 9 | | `method: void javax.swing.plaf.basic.BasicSliderUI.<init>():` | 16 | Note: JDK 9 is used as the "base" as that's how far I can reliably use the `--release` info, so if something was added in JDK 2,5.7,9. It has a value of "9" in the dictionnary. I mainly check for errors in newer code. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/19192#discussion_r1600782386 PR Review Comment: https://git.openjdk.org/jdk/pull/19192#discussion_r1600780531