On Sat, 27 Jan 2024 15:40:53 GMT, Kevin Rushforth <k...@openjdk.org> 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

Reply via email to