RFR: JDK-8353755 : Add a helper method to Util - findComponent() [v3]

Harshitha Onkar honkar at openjdk.org
Mon Nov 3 21:56:49 UTC 2025


On Fri, 24 Oct 2025 11:27:03 GMT, Alexey Ivanov <aivanov at openjdk.org> wrote:

>> There are some tests where EDT calls are interleaved between calls to robot (non-EDT) (e.g bug4759934.java - findCancelButton()) and few other tests (e.g FileSizeCheck.java - findDetailsButton() and findTable() that are within upper level method which is called on EDT). Is it better to leave it as-is for flexibility rather than add a wrapper?
>> 
>> If a wrapper is added we might need to check if it is already on EDT thread or not as below:
>> 
>> 
>> if (isEventDispatchThread()) {
>>    return _findComponent(container, predicate);
>> } else {
>>   return Util.invokeOnEDT(() -> _findComponent(container, predicate));
>> }
>
>> If a wrapper is added we might need to check if it is already on EDT thread or not as below:
> 
> This is what I said: *“the implementation will run directly or on EDT.”* So if it's already on EDT, call directly; it it's not, use `invokeOnEDT`.
> 
> The utility method can then be used in all the contexts without thinking. (The implementation, if you choose this way, should rather be `findComponentImpl` rather than prefixed with an underscore.)
> 
> Likely, one still needs to call `findComponent` on EDT because any other operations on the component need to be on EDT. In this case, `findComponent` could throw an exception if it's called not on EDT.
> 
> These things will ensure the method can work correctly.

Updated.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/27944#discussion_r2487957140


More information about the client-libs-dev mailing list