The assertions reported in the bug were observed spuriously and here and there 
broke tests in some Windows configurations.
For instance [JDK-8266129](https://bugs.openjdk.org/browse/JDK-8266129), 
[JDK-8269529](https://bugs.openjdk.org/browse/JDK-8269529) or 
[JDK-8323664](https://bugs.openjdk.org/browse/JDK-8323664) came up due to this.

The problem is that in Windows environments without a valid display, e.g. 
started by system services or via PowerShell Remoting, one sees a Monitor with 
name 'Windisc' in `EnumDisplayMonitors`.
However, it seems to be some kind of a pseudo device where you can not get a DC 
via `CreateDC`. This behavior/monitor type doesn't seem to be well documented, 
though.

I hereby modify the device initialization code to only count/detect monitors 
where CreateDC returns non-NULL in Devices.cpp. I also add some more 
checking/error handling to AwtWin32GraphicsDevice::Initialize() for correctness.

Furthermore, I re-enable the test 
`javax/swing/reliability/HangDuringStaticInitialization.java` for Windows Debug 
VMs, which reverts the fix from JDK-8269529 that should not be necessary any 
more.

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

Commit messages:
 - JDK-8185862

Changes: https://git.openjdk.org/jdk/pull/17614/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=17614&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8185862
  Stats: 60 lines in 3 files changed: 34 ins; 13 del; 13 mod
  Patch: https://git.openjdk.org/jdk/pull/17614.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/17614/head:pull/17614

PR: https://git.openjdk.org/jdk/pull/17614

Reply via email to