RFR: 8361521 : BogusFocusableWindowState.java fails with StackOverflowError on Linux [v5]
Alexey Ivanov
aivanov at openjdk.org
Wed Aug 27 18:37:46 UTC 2025
On Wed, 20 Aug 2025 05:05:20 GMT, Anass Baya <abaya at openjdk.org> wrote:
>> **Analysis:**
>> The getFocusableWindowState() method is not intended to modify the configuration; doing so can cause recursive re-entry on Linux.
>>
>> **Proposed Fix:**
>> We are intentionally overriding getFocusableWindowState() to allow it to change the configuration, in order to verify that calling getScreenImOn() for ownerless windows does not throw any exceptions.
>> To prevent recursive re-entry, we use a flag to ensure that getFocusableWindowState() is executed only once
>
> Anass Baya has updated the pull request incrementally with one additional commit since the last revision:
>
> add space
Since the failure of the test `BogusFocusableWindowState.java` proved to be a product bug, you have to add `8361521` into the `@bug` tag in `BogusFocusableWindowState.java`
src/java.desktop/unix/classes/sun/awt/X11/XWindowPeer.java line 1105:
> 1103: }
> 1104: promoteDefaultPosition();
> 1105: boolean refreshChildsTransientFor = isVisible() != vis;
Move the assignment
boolean refreshChildsTransientFor = isVisible() != vis;
before the `if` statement, and use `refreshChildsTransientFor` in the condition to avoid evaluating the same condition twice.
-------------
Changes requested by aivanov (Reviewer).
PR Review: https://git.openjdk.org/jdk/pull/26298#pullrequestreview-3161301508
PR Review Comment: https://git.openjdk.org/jdk/pull/26298#discussion_r2304991267
More information about the client-libs-dev
mailing list