On Tue, 15 Jul 2025 19:52:15 GMT, Alisen Chung <ach...@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

Reply via email to