RFR: 8361521 : BogusFocusableWindowState.java fails with StackOverflowError on Linux
Anass Baya
abaya at openjdk.org
Tue Jul 22 02:02:33 UTC 2025
On Tue, 15 Jul 2025 19:52:15 GMT, Alisen Chung <achung at openjdk.org> wrote:
> > The getFocusableWindowState() method is not intended to modify the configuration; doing so can cause recursive re-entry on Linux.
>
> What's causing the recursive re-entry? Is the bug in the code path in linux when calling getFocusableWindowState?
Hello @alisenchung, @mrserb,
In the test, we override getFocusableWindowState() to call removeNotify(). During the execution of removeNotify(), getFocusableWindowState() is called again as you see in the call stack, which leads to an infinite recursive loop and eventually results in a StackOverflowError
getFocusableWindowState()
└─→ removeNotify()
...
└─→ isFocusableWindow()
...
└─→ getFocusableWindowState() ← loop
At first, I thought this was a bug in the test and submitted a fix (as shown in the PR). However, since @mrserb mentioned that the JDK should be able to handle this scenario on Linux, I’m continuing to investigate the issue further.
-------------
PR Comment: https://git.openjdk.org/jdk/pull/26298#issuecomment-3100428466
More information about the client-libs-dev
mailing list