[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openjdk-2d-dev
Subject:    Re: RFR: 8185862: AWT Assertion Failure in ::GetDIBits(hBMDC, hBM, 0,  1, 0, gpBitmapInfo, 0) 'awt_W
From:       Christoph Langer <clanger () openjdk ! org>
Date:       2024-02-29 22:24:14
Message-ID: OItsk8uTpJR2VK4ZfPHLbVWMloGEGvHxOU9hDN8XnLI=.09789dcd-00a8-49f6-b03c-0e21be5f36d8 () github ! com
[Download RAW message or body]

> 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/7f723ce8...f43da52f

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/17614/files
  - new: https://git.openjdk.org/jdk/pull/17614/files/61a78563..f43da52f

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=17614&range=06
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=17614&range=05-06

  Stats: 12463 lines in 1143 files changed: 6295 ins; 2562 del; 3606 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


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic