AssertionError in ScheduledService.executeTask
Sebastian Stenzel
sebastian.stenzel at gmail.com
Mon Feb 17 18:42:57 UTC 2020
When restart()ing a ScheduledService while having assertions enabled, the assertions in [1] or [2] fail. Without assertions the code seems to run fine, though.
According to the inline comments, "resetting things should have cleared the delayTask". Therefore I wonder, if resetting the delayTask is missing in reset().
At the moment this field is only set to null during cancel() [3] as well as after exception-free execution of a previous TimerTask [4].
A workaround would be to call cancel() first, but one has to make sure to be in a valid state. I wonder if there is some documentation about the state transitions and how to start, stop and restart a service correctly.
[1]: https://github.com/openjdk/jfx/blob/e98645932d0d7765988f21b09d6d121202281e02/modules/javafx.graphics/src/main/java/javafx/concurrent/ScheduledService.java#L357 <https://github.com/openjdk/jfx/blob/e98645932d0d7765988f21b09d6d121202281e02/modules/javafx.graphics/src/main/java/javafx/concurrent/ScheduledService.java#L357>
[2]: https://github.com/openjdk/jfx/blob/e98645932d0d7765988f21b09d6d121202281e02/modules/javafx.graphics/src/main/java/javafx/concurrent/ScheduledService.java#L379 <https://github.com/openjdk/jfx/blob/e98645932d0d7765988f21b09d6d121202281e02/modules/javafx.graphics/src/main/java/javafx/concurrent/ScheduledService.java#L379>
[3]: https://github.com/openjdk/jfx/blob/e98645932d0d7765988f21b09d6d121202281e02/modules/javafx.graphics/src/main/java/javafx/concurrent/ScheduledService.java#L469 <https://github.com/openjdk/jfx/blob/e98645932d0d7765988f21b09d6d121202281e02/modules/javafx.graphics/src/main/java/javafx/concurrent/ScheduledService.java#L469>
[4]: https://github.com/openjdk/jfx/blob/e98645932d0d7765988f21b09d6d121202281e02/modules/javafx.graphics/src/main/java/javafx/concurrent/ScheduledService.java#L524 <https://github.com/openjdk/jfx/blob/e98645932d0d7765988f21b09d6d121202281e02/modules/javafx.graphics/src/main/java/javafx/concurrent/ScheduledService.java#L524>
More information about the openjfx-dev
mailing list