On Thu, 18 Mar 2021 14:38:18 GMT, Marius Hanl <github.com+66004280+mara...@openjdk.org> wrote:
> When DialogPane#getButtonTypes().setAll() is called twice with the same > argument(s), DialogPane#lookupButton does not return the node which is shown > inside the button bar. > This is due DialogPane adding two list change listeners to 'buttons' > (#getButtonTypes). They have the wrong order, which will result in the button > bar not changing at all and the 'buttonNodes' list will recreate the dialog > button(s). > Finally, this will make DialogPane#lookupButton returning the 'wrong' button, > which is in fact not used inside the dialog button bar. I have one question on the fix (see below). Also, have you run all of the unit tests (not just the new one)? modules/javafx.controls/src/main/java/javafx/scene/control/DialogPane.java line 1062: > 1060: boolean hasDefault = false; > 1061: for (ButtonType cmd : getButtonTypes()) { > 1062: Node button = buttonNodes.get(cmd); Why was this change needed? ------------- PR: https://git.openjdk.java.net/jfx/pull/432