RFR: 8357157: Exception thrown from AnimationTimer freezes application [v2]

Michael Strauß mstrauss at openjdk.org
Fri May 16 19:05:57 UTC 2025


On Fri, 16 May 2025 18:52:57 GMT, Michael Strauß <mstrauss at openjdk.org> wrote:

>> modules/javafx.graphics/src/main/java/com/sun/scenario/animation/AbstractPrimaryTimer.java line 352:
>> 
>>> 350:     }
>>> 351: 
>>> 352:     private static abstract class ReceiverRecord<T> {
>> 
>> All this does look complicated, just to limit the number of messages in the log (a noble cause).
>> 
>> What if we just print the first message and ignore the rest?  It might be relatively unlikely that two different failures appeared at the same time, each with its own root cause?
>> 
>> If we just show the first one, we'll remove all this complexity and the system property, and possibly get back to the simpler original code?
>> 
>> What do you think?
>
> We're throwing away all exceptions after a certain point (either after the first, or some number of exceptions after that). A potential use case would be debugging a large application that for some reason throws lots of different exceptions from timers. There can't be many applications that do this, because right now that would most likely just freeze the application. I'm okay either way (logging the first exception, or logging the first 100 exceptions with a user-configurable threshold).

We could also just keep it with a fixed threshold, but remove the system property.

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

PR Review Comment: https://git.openjdk.org/jfx/pull/1811#discussion_r2093548803


More information about the openjfx-dev mailing list