NPE in UiUtilities.showConfirmDialogOnMouseScreen()

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.

BBCode ist eingeschaltet
[img] ist eingeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Ansicht erweitern Die letzten Beiträge des Themas: NPE in UiUtilities.showConfirmDialogOnMouseScreen()

NPE in UiUtilities.showConfirmDialogOnMouseScreen()

von Anton_D » 05 Mär 2023, 21:18

Wenn ich im Einrichtungsassistent im 2. Schritt die Maske wegen AndroidSync zu sehen bekomme, dann klicke ich die einfach durch Schließen des Fensters (Kreuz oben rechts) weg. Dann ist die Maske zwar weg, ich sehe aber im Log diese Exception:

java.lang.NullPointerException: Cannot invoke "java.lang.Integer.intValue()" because the return value of "javax.swing.JOptionPane.getValue()" is null
at tvbrowser/util.ui.UiUtilities.showConfirmDialogOnMouseScreen(UiUtilities.java:1564)
at tvbrowser/util.ui.UiUtilities.showConfirmDialogOnMouseScreen(UiUtilities.java:1502)
at tvbrowser/tvbrowser.ui.settings.ChannelsSettingsTab.askForSynchronization(ChannelsSettingsTab.java:544)
at tvbrowser/tvbrowser.ui.settings.ChannelsSettingsTab.lambda$createSettingsPanel$9(ChannelsSettingsTab.java:511)

Man kann in den Einstellungen auf Kanäle-Einstellungen gehen - es wird dasselbe geschehen.

In der Zeile 1564 wird einfach Boxing durchgeführt / gecastet, ohne auf null zu prüfen. Und wenn ich keinen Knopf drucke - dann ist dieser Wert genau null.

Ich habe nachgeschaut, wo diese Methode überall benutzt wird. Es sind ProtocolHandler und SelectFilterDlg, und dann durch showConfirmDialogOnMouseScreen() mit weniger Parameter noch 8 Mal im Settings, ProtocolHandler, ManageFavoritesPanel und ChannelsSettingsTab.
Überall wird das Ergebnis mit einer Konstante aus JOptionPane verglichen.

Ich würde meinen, man soll getValue() Wert zuerst auf null prüfen, und falls es null ist, dann irgendwelche Konstante wie CLOSED_OPTION benutzen.

Am Ende passiert ja das, was ich wollte - Maske ist weg, ich habe nichts gewählt; aber es soll doch keine Exception fliegen.

Nach oben