RFR: 8263322: Deadlock when calling Application.launch in the FXThread after Platform.startup [v2]

Kevin Rushforth kcr at openjdk.java.net
Wed Mar 10 17:23:12 UTC 2021


On Wed, 10 Mar 2021 15:29:37 GMT, Florian Kirmaier <fkirmaier at openjdk.org> wrote:

> Contribution.MD states, that it's automatically checked for whitespace errors? Is this not true?

Yes, Skara's jcheck does basic sanity checking (tabs, trailing white space, line endings). Why do you ask? I didn't raise this as a question in this PR. Do you have reason to believe that this isn't working?

> As a clarification, this PR restores the previous behavior before Platform.startup. With this PR Application.launch and Platform.startup behaves the same.

Not quite. `Platform.startup` is a new method that was previously available only via an internal implementation class, which simply starts up the FX runtime without running any of the application life cycle. Once this was added to public API, it became possible (but is seldom necessary) to call `Platform.startup` and then later call `Application.launch`, which should work fine as long as the latter call is _not_ on the FX Application Thread. What was missed is a check to make sure that `Application.launch` is not called on the FX Application thread. This should have been documented to throw an exception. It is somewhat similar to, but not the same as, the case of calling `Application.launch` more than once.

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

PR: https://git.openjdk.java.net/jfx/pull/421


More information about the openjfx-dev mailing list