RFR: 6603771: Nimbus L&F: Ctrl+F7 keybinding for Jinternal Frame throws a NPE. [v3]
Sergey Bylokhov
serb at openjdk.org
Wed Dec 14 08:27:55 UTC 2022
On Wed, 14 Dec 2022 03:21:57 GMT, Prasanta Sadhukhan <psadhukhan at openjdk.org> wrote:
>> In Swingset2 JInternalFrame demo, focusing on any internalframes and pressing Ctrl+F7 and then any of up/down/left/arrow key to move the internal frames results in NPE in NimbusL&F.
>> It is because `JComponent.processKeyBinding() `calls `SwingUtilities.notifyAction` which calls `BasicDesktopPaneUI.actionPerformed` where it gets `Desktop.minOnScreenInsets` property to get the Insets and then uses insets.top/bottom/left/right value to move the internalframe but this property is not defined for Nimbus so deferencing Insets object results in NPE.
>>
>> Fix is added to create a 0 insets incase some L&F do not define` Desktop.minOnScreenInsets` property.
>> No regression test is added as it can be easily checked by SwingSet2 JInternalFrame demo.
>
> Prasanta Sadhukhan has updated the pull request incrementally with one additional commit since the last revision:
>
> Fix jcheck issues
test/jdk/javax/swing/JInternalFrame/JInternalFrameTest.java line 104:
> 102: }
> 103: } finally {
> 104: if (jFrame != null) {
If `jFrame` is checked on the main thread it should be volatile as well.
-------------
PR: https://git.openjdk.org/jdk/pull/11605
More information about the client-libs-dev
mailing list