RFR: 8245145: Spinner: throws IllegalArgumentException when replacing skin [v3]

Ajit Ghaisas aghaisas at openjdk.org
Tue Dec 6 11:25:51 UTC 2022


On Fri, 2 Dec 2022 17:42:00 GMT, Andy Goryachev <angorya at openjdk.org> wrote:

>> Fixed SpinnerSkin initialization using new Skin.install().  Also in this PR - fixing memory leaks in SpinnerSkin by properly removing all listeners and event filters added in the constructor, as well as any child Nodes.
>> 
>> NOTE: the fix requires both ListenerHelper [JDK-8294809](https://bugs.openjdk.org/browse/JDK-8294809) and Skin.install() [JDK-8290844](https://bugs.openjdk.org/browse/JDK-8290844) changes.
>
> Andy Goryachev has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 51 commits:
> 
>  - Merge remote-tracking branch 'origin/master' into 8245145.spinner.skin
>  - Merge remote-tracking branch 'origin/master' into 8245145.spinner.skin
>  - 8245145: cleanup
>  - 8245145: cleanup
>  - 8245145: cleanup
>  - Merge remote-tracking branch 'origin/master' into 8245145.spinner.skin
>  - 8245145: listener helper
>  - Merge branch '8294809.listener.helper' into 8245145.spinner.skin
>  - 8294809: whitespace
>  - 8294809: no public api
>  - ... and 41 more: https://git.openjdk.org/jfx/compare/e64e1292...c933b7b5

modules/javafx.controls/src/main/java/javafx/scene/control/skin/SpinnerSkin.java line 267:

> 265:     @Override
> 266:     public void install() {
> 267:         getChildren().add(textField);

`dispose()` method removes 3 children, whereas `install()` method adds only 1 child. Is this intentional?

-------------

PR: https://git.openjdk.org/jfx/pull/904


More information about the openjfx-dev mailing list