-
Bug
-
Resolution: Fixed
-
P3
-
8
The recent change to fix RT-27791 has introduced two threading issues that must be addressed.
changeset: 4570:3aadad7d5904
user: mickf
date: Thu Aug 01 14:43:17 2013 +0100
summary:RT-27791 :ProgressBar keeps animating when in ScrollPane and scrolled out of view
First, the threads are not created as daemon threads, which can lead to applications that will not exit. To see this problem, run the Modena app and close the window (using the close button on the window frame). The app will continue to run. See the attached thread stack dump.
Second, the code is not MT safe (this is from inspection), which could lead to other issues. It calls timeline.play() from the progress indicator thread, which should only be done on the FX application thread.
Can you comment on why a separate thread is needed in the first place? If you are able to use an animation timeline with a key frame that wakes up every N milliseconds, it seems that both problems would be solved. If this somehow isn't possible then two changes need to be made:
1) Call Thread.setDaemon(true) before starting the thread
2) Wrap the call to the Timeline.play() methods in Platform.runLater()
changeset: 4570:3aadad7d5904
user: mickf
date: Thu Aug 01 14:43:17 2013 +0100
summary:
First, the threads are not created as daemon threads, which can lead to applications that will not exit. To see this problem, run the Modena app and close the window (using the close button on the window frame). The app will continue to run. See the attached thread stack dump.
Second, the code is not MT safe (this is from inspection), which could lead to other issues. It calls timeline.play() from the progress indicator thread, which should only be done on the FX application thread.
Can you comment on why a separate thread is needed in the first place? If you are able to use an animation timeline with a key frame that wakes up every N milliseconds, it seems that both problems would be solved. If this somehow isn't possible then two changes need to be made:
1) Call Thread.setDaemon(true) before starting the thread
2) Wrap the call to the Timeline.play() methods in Platform.runLater()
- relates to
-
JDK-8124471 ProgressBar keeps animating when in ScrollPane and scrolled out of view
- Closed
-
JDK-8097782 ProgressBarSkin should extend ProgressIndicatorSkin.
- Resolved
-
JDK-8123094 Apps with ProgressBar don't exit any more because of Regression on RT-32327
- Closed
-
JDK-8123806 StackOverflowError in Modena
- Closed