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