RFR: 8252446: Screen.getScreens() is empty sometimes

Pankaj Bansal pbansal at openjdk.java.net
Wed Sep 16 18:34:35 UTC 2020

On Thu, 3 Sep 2020 15:18:06 GMT, Kevin Rushforth <kcr at openjdk.org> wrote:

> As noted in the bug report, we get a pair of change events every time the list of screens changes. First, a change is
> sent with an empty list of screens and then a change is sent with the new list of screens. This happens whenever a
> monitor is plugged in or unplugged. It also happens on Mac at application startup.  As noted in the bug the reason for
> this is because the `updateConfiguration` method makes two separate calls on the list of screens, `clear` and `addAll`,
> rather than calling `setAll`. The latter ensures that only a single change event is delivered.  I verified that before
> this fix, the example program attached to the bug works correctly after the fix.
> I wrote a unit test. It ends up being skipped on Windows and Linux since we don't get an initial change event. On Mac
> the test fails without the fix and passes with the fix.

I tried this on Mac and Ubuntu 20.04. I could not reproduce the issue without the fix and test passes with/without the
fix. But the changes make sense, so approving the changes.


Marked as reviewed by pbansal (no project role).

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

More information about the openjfx-dev mailing list