On Thu, 29 Feb 2024 22:24:14 GMT, Christoph Langer <clan...@openjdk.org> wrote:

>> 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.
>
> Christoph Langer has updated the pull request with a new target base due to a 
> merge or a rebase. The incremental webrev excludes the unrelated changes 
> brought in by the merge/rebase. The pull request contains 11 additional 
> commits since the last revision:
> 
>  - Change implementation of headless determination on Windows
>  - Merge branch 'master' into JDK-8185862
>  - Reflect display detection in java.awt.GraphicsEnvironment::isHeadless()
>  - Merge branch 'master' into JDK-8185862
>  - Get rid of global variables and restore old handling wrt calling 
> ::GetDIBits
>  - Merge branch 'master' into JDK-8185862
>  - Little cleanup
>  - Review Feedback Alexey
>  - Merge branch 'master' into JDK-8185862
>  - Add comments
>  - ... and 1 more: https://git.openjdk.org/jdk/compare/db1cc14f...f43da52f

Does this new version really work for you ??


I'm getting 
Execution failed: `main' threw exception: java.lang.UnsatisfiedLinkError: 
'boolean sun.awt.PlatformGraphicsInfo.hasDisplays0()'

eg from
 java\awt\Modal\ModalBlockingTests\UnblockedDialogAppModalTest.java

It is at least 840 tests that fail .. 

Since I do see the method in your change  .. and in my local copy too, I assume 
I correctly applied your patch 
+Java_sun_awt_PlatformGraphicsInfo_hasDisplays0(JNIEnv *env, jclass thisClass) {

.. so  I wonder if awt.dll is not loaded in time ? It isn't on demand.
It needs an explicit loadLibrary("awt") on all paths that can't rely on 
something else to do it.
What tests did you run and in what environment ?

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

PR Comment: https://git.openjdk.org/jdk/pull/17614#issuecomment-1972620307

Reply via email to