On Sat, 27 Jan 2024 15:40:53 GMT, Kevin Rushforth <[email protected]> wrote:
>> Nir Lisker has updated the pull request incrementally with one additional
>> commit since the last revision:
>>
>> Doc changes to AnimationTimer methods
>
> modules/javafx.graphics/src/main/java/javafx/animation/Timeline.java line 196:
>
>> 194: @Override
>> 195: void stopOnFxThread() {
>> 196: // The parent check is redone in the super method. Consider
>> refactoring.
>
> As you've probably already seen, this causes infinite recursion and an
> eventual StackOverflow. The easiest (and probably safest) fix is to revert
> this part of the change, keeping the overridden `stop` method, and have it
> call a private `stopOnFxThread` method (and make the one in the parent class
> also private). You can file a bug to refactor it later.
I just pushed a fix that calls the correct super method. The implementation
isn't fully tested yet because I wanted to get the CSR moving in parallel.
I'm still thinking on the least intrusive way to write the tests. It seems that
the only way to check if a method runs on the FX thread is to override a method
on its stack and check there. That means that I would need to expose
(package-private) the `play/start/stop/pauseOnFxThread` methods.
-------------
PR Review Comment: https://git.openjdk.org/jfx/pull/1352#discussion_r1468511221