JDK-8090889 : Unify Platform.runLater() and Platform.startup()
  • Type: Enhancement
  • Component: javafx
  • Sub-Component: application-lifecycle
  • Affected Version: fx2.0
  • Priority: P4
  • Status: Closed
  • Resolution: Won't Fix
  • Submitted: 2011-04-22
  • Updated: 2017-04-14
  • Resolved: 2015-10-14
Related Reports
Relates :  
Description
Currently we need to wait for PlatformImpl.startup() to finish before we can use Platform.runLater().

This is not really convenient as we need to track PlatformImpl initialization status in the deployment code. 
Ideally, we want to launch "warmup" operation on the platform in the background thread and expect that subsequent operations can be launched any time later 
using runLater(). Even if startup had not finished yet.
Comments
I note that it would still be a useful RFE to do step #1 as described above: namely, support calling Platform.runLater as soon as Platform.startup returns, with the guarantee that the Runnable passed to startup will run before any Runnable passed to a subsequent call to runLater. We can either do this as part of JDK-8090585 or file a new RFE and do it as a follow-on. I think it should be done for JDK 9.
14-10-2015

We are going to formalize the startup of the platform by adding a public Platform.startup() method for JDK-8090585. As such, we will not implement this RFE.
14-10-2015

There are two steps to this: 1) Allow Platform.runLater() to be called before Platform.startup() has finished. This will allow the deployment code to call Platform.startup() on a background thread without having to worry about what point it is then OK to call runLater. This will solve the performance issue that Igor is concerned about. 2) It may be worth eliminating startup() and modify the test programs and launchers to call runLater() One possible problem with this is that runLater, unlike startup() will return immediately, so test harnesses and the standalone launcher will not have a way to get exceptions that might happen during launching.
25-04-2011