RFR: JDK-8297414: Remove easy warnings in javafx.controls [v3]

Andy Goryachev angorya at openjdk.org
Tue Nov 22 18:27:21 UTC 2022


On Tue, 22 Nov 2022 16:44:01 GMT, John Hendrikx <jhendrikx at openjdk.org> wrote:

>> Note: I ran into a `javac` compiler bug while replacing types with diamond operators (ecj has no issues).  I had two options, add a `SuppressWarnings("unused")` or to use a lambda instead of a method reference to make `javac` happy.  I choose the later and added a comment so it can be fixed once the bug is fixed.  I've reported the issue here: https://bugs.openjdk.org/browse/JDK-8297428
>> 
>> - Remove unsupported/unnecessary SuppressWarning annotations
>> - Remove reduntant type specifications (use diamond operator)
>> - Remove unused or duplicate imports
>> - Remove unnecessary casts (type is already correct type or can be autoboxed)
>> - Remove unnecessary semi-colons (at end of class definitions, or just repeated ones)
>> - Remove redundant super interfaces (interface that is already inherited)
>> - Remove unused type parameters
>> - Remove declared checked exceptions that are never thrown
>> - Add missing `@Override` annotations
>
> John Hendrikx has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Revert "Fix warnings in fxml"
>   
>   This reverts commit b148aa3cc8a4676167a9eb8a023cddce3de116e7.

Changes requested by angorya (Author).

General comment: there are many places where the test seem to require the StubToolkit:

tk = (StubToolkit)Toolkit.getToolkit();//This step is not needed (Just to make sure StubToolkit is loaded into VM)


The question is - do we really need the StubToolkit there, and if so, we probably should create a method in Util, something like Util.loadStubToolkit().  If not, then the proposed changes are ok.

modules/javafx.controls/src/main/java/com/sun/javafx/scene/control/skin/FXVKSkin.java line 750:

> 748:         protected void sendKeyEvents() {
> 749:             Node target = fxvk.getAttachedNode();
> 750:             if (chars != null) {

not functionally equivalent:
(instanceof EventTarget) here is equivalent to
(!= null)

modules/javafx.controls/src/main/java/com/sun/javafx/scene/control/skin/FXVKSkin.java line 858:

> 856:         protected void sendKeyEvents() {
> 857:             Node target = fxvk.getAttachedNode();
> 858: 

same comment - check for null?

modules/javafx.controls/src/main/java/javafx/scene/control/TableView.java line 2114:

> 2112:             this.tableView.itemsProperty().addListener(itemsPropertyListener);
> 2113: 
> 2114:             selectedCellsMap = new SelectedCellsMap<>(c -> fireCustomSelectedCellsListChangeEvent(c)) {  // Note: use of method reference causes javac compilation error (see JDK-8297428)

+1

modules/javafx.controls/src/test/java/test/javafx/scene/control/AccordionTest.java line 57:

> 55: 
> 56:     @Before public void setup() {
> 57:         tk = Toolkit.getToolkit();//This step is not needed (Just to make sure StubToolkit is loaded into VM)

not equivalent.
I wonder if we need an assertTrue here

modules/javafx.controls/src/test/java/test/javafx/scene/control/ButtonTest.java line 79:

> 77:     @Before public void setup() {
> 78:         btn = new Button();
> 79:         tk = Toolkit.getToolkit();//This step is not needed (Just to make sure StubToolkit is loaded into VM)

assertTrue?

modules/javafx.controls/src/test/java/test/javafx/scene/control/CheckMenuItemTest.java line 53:

> 51: 
> 52:     @Before public void setup() {
> 53:         tk = Toolkit.getToolkit();//This step is not needed (Just to make sure StubToolkit is loaded into VM)

assertTrue?

modules/javafx.controls/src/test/java/test/javafx/scene/control/ChoiceBoxTest.java line 80:

> 78: 
> 79:         //This step is not needed (Just to make sure StubToolkit is loaded into VM)
> 80:         tk = Toolkit.getToolkit();

assertTrue?

modules/javafx.controls/src/test/java/test/javafx/scene/control/ColorPickerTest.java line 53:

> 51: 
> 52:     @Before public void setup() {
> 53:         tk = Toolkit.getToolkit();

assertTrue?

modules/javafx.controls/src/test/java/test/javafx/scene/control/ComboSpecialKeyTest.java line 163:

> 161:         // This step is not needed (Just to make sure StubToolkit is
> 162:         // loaded into VM)
> 163:         tk = Toolkit.getToolkit();

assertTrue?

modules/javafx.controls/src/test/java/test/javafx/scene/control/CustomMenuItemTest.java line 55:

> 53: 
> 54:     @Before public void setup() {
> 55:         tk = Toolkit.getToolkit();//This step is not needed (Just to make sure StubToolkit is loaded into VM)

or maybe create a Util.loadStubToolkit()

modules/javafx.controls/src/test/java/test/javafx/scene/control/DefaultCancelButtonTestBase.java line 316:

> 314:         //This step is not needed (Just to make sure StubToolkit is loaded into VM)
> 315:         @SuppressWarnings("unused")
> 316:         Toolkit tk = Toolkit.getToolkit();

toolkit

modules/javafx.controls/src/test/java/test/javafx/scene/control/MenuBarTest.java line 75:

> 73:         setUncaughtExceptionHandler();
> 74: 
> 75:         tk = Toolkit.getToolkit();

toolkit

modules/javafx.controls/src/test/java/test/javafx/scene/control/PaginationTest.java line 69:

> 67:     @Before public void setup() {
> 68:         pagination = new Pagination();
> 69:         tk = Toolkit.getToolkit();//This step is not needed (Just to make sure StubToolkit is loaded into VM)

toolkit

modules/javafx.controls/src/test/java/test/javafx/scene/control/RadioMenuItemTest.java line 59:

> 57: 
> 58:     @Before public void setup() {
> 59:         tk = Toolkit.getToolkit();//This step is not needed (Just to make sure StubToolkit is loaded into VM)

toolkit

modules/javafx.controls/src/test/java/test/javafx/scene/control/ScrollBarTest.java line 55:

> 53: 
> 54:     @Before public void setup() {
> 55:         tk = Toolkit.getToolkit();//This step is not needed (Just to make sure StubToolkit is loaded into VM)

toolkit

modules/javafx.controls/src/test/java/test/javafx/scene/control/ScrollPaneTest.java line 57:

> 55: 
> 56:     @Before public void setup() {
> 57:         tk = Toolkit.getToolkit();//This step is not needed (Just to make sure StubToolkit is loaded into VM)

toolkit

modules/javafx.controls/src/test/java/test/javafx/scene/control/SeparatorMenuItemTest.java line 52:

> 50: 
> 51:     @Before public void setup() {
> 52:         tk = Toolkit.getToolkit();//This step is not needed (Just to make sure StubToolkit is loaded into VM)

toolkit

modules/javafx.controls/src/test/java/test/javafx/scene/control/SliderTest.java line 57:

> 55: 
> 56:     @Before public void setup() {
> 57:         tk = Toolkit.getToolkit();//This step is not needed (Just to make sure StubToolkit is loaded into VM)

toolkit

modules/javafx.controls/src/test/java/test/javafx/scene/control/SpinnerTest.java line 1384:

> 1382:     boolean escapeCancelPass = false;
> 1383:     @Test public void testEnterEscapeKeysWithDefaultCancelButtons() {
> 1384:         Toolkit tk = Toolkit.getToolkit();

toolkit

modules/javafx.controls/src/test/java/test/javafx/scene/control/SpinnerTest.java line 1462:

> 1460:     // Test for JDK-8185937
> 1461:     @Test public void testIncDecKeys() {
> 1462:         Toolkit tk = Toolkit.getToolkit();

toolkit

modules/javafx.controls/src/test/java/test/javafx/scene/control/SplitPaneTest.java line 77:

> 75: 
> 76:     @Before public void setup() {
> 77:         tk = Toolkit.getToolkit();//This step is not needed (Just to make sure StubToolkit is loaded into VM)

toolkit

modules/javafx.controls/src/test/java/test/javafx/scene/control/TabPaneTest.java line 102:

> 100: 
> 101:     @Before public void setup() {
> 102:         tk = Toolkit.getToolkit();//This step is not needed (Just to make sure StubToolkit is loaded into VM)

toolkit

modules/javafx.controls/src/test/java/test/javafx/scene/control/TabTest.java line 64:

> 62: 
> 63:     @Before public void setup() {
> 64:         tk = Toolkit.getToolkit();//This step is not needed (Just to make sure StubToolkit is loaded into VM)

toolkit

modules/javafx.controls/src/test/java/test/javafx/scene/control/TextInputControlTest.java line 393:

> 391:     // Test for JDK-8178417
> 392:     @Test public void caretPositionUndo() {
> 393:         Toolkit tk = Toolkit.getToolkit();

toolkit

modules/javafx.controls/src/test/java/test/javafx/scene/control/TextInputControlTest.java line 1942:

> 1940:     // Test for JDK-8178418
> 1941:     @Test public void UndoRedoSpaceSequence() {
> 1942:         Toolkit tk = Toolkit.getToolkit();

toolkit

modules/javafx.controls/src/test/java/test/javafx/scene/control/TextInputControlTest.java line 1981:

> 1979:     // Test for JDK-8178418
> 1980:     @Test public void UndoRedoReverseSpaceSequence() {
> 1981:         Toolkit tk = Toolkit.getToolkit();

toolkit

modules/javafx.controls/src/test/java/test/javafx/scene/control/TextInputControlTest.java line 2028:

> 2026:     // Test for JDK-8178418
> 2027:     @Test public void UndoRedoWords() {
> 2028:         Toolkit tk = Toolkit.getToolkit();

toolkit

modules/javafx.controls/src/test/java/test/javafx/scene/control/TextInputControlTest.java line 2077:

> 2075:     // Test for JDK-8178418
> 2076:     @Test public void UndoRedoTimestampBased() {
> 2077:         Toolkit tk = Toolkit.getToolkit();

toolkit

modules/javafx.controls/src/test/java/test/javafx/scene/control/TitledPaneTest.java line 77:

> 75:     @Before public void setup() {
> 76:         node = new Rectangle();
> 77:         tk = Toolkit.getToolkit();//This step is not needed (Just to make sure StubToolkit is loaded into VM)

toolkit

modules/javafx.controls/src/test/java/test/javafx/scene/control/ToggleButtonTest.java line 58:

> 56: 
> 57:     @Before public void setup() {
> 58:         tk = Toolkit.getToolkit();//This step is not needed (Just to make sure StubToolkit is loaded into VM)

toolkit

modules/javafx.controls/src/test/java/test/javafx/scene/control/ToolbarTest.java line 76:

> 74: 
> 75:     @Before public void setup() {
> 76:         tk = Toolkit.getToolkit();//This step is not needed (Just to make sure StubToolkit is loaded into VM)

toolkit

modules/javafx.controls/src/test/java/test/javafx/scene/control/TooltipTest.java line 62:

> 60: 
> 61:     @Before public void setup() {
> 62:         tk = Toolkit.getToolkit();//This step is not needed (Just to make sure StubToolkit is loaded into VM)

toolkit

modules/javafx.controls/src/test/java/test/javafx/scene/control/skin/ProgressBarSkinTest.java line 67:

> 65:     private void initStage() {
> 66:         //This step is not needed (Just to make sure StubToolkit is loaded into VM)
> 67:         Toolkit tk = Toolkit.getToolkit();

toolkit

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

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


More information about the openjfx-dev mailing list