On Thu, 12 Jan 2023 02:07:06 GMT, Sergey Bylokhov <[email protected]> wrote:
>>> > Not only _Downloads_ folder returns null, as I was mentioning it was >>> > varying for multiple test runs. >>> >>> I remember you were saying that only this one was affected. I may have >>> missed that other folders were affected as well. >>> >>> > Then submitting a new bug for ImageIcon failing to load Image in headless >>> > systems right? >>> >>> Yes, for this particular problem: a folder icon cannot be fetched from >>> Windows on a headless system. >> >> Created - [JDK-8299893](https://bugs.openjdk.org/browse/JDK-8299893). Shall >> I integrate this PR by removing the test from problemList? > >> Created - [JDK-8299893](https://bugs.openjdk.org/browse/JDK-8299893). Shall >> I integrate this PR by removing the test from problemList? > > Did we have a chance to reproduce it at least once other than accidentally in > mach5? If not that not necessarily is a root cause, I doubt that the new bug > will not be fixed any time soon. @mrserb was absolutely right! Marking the test `@headful` will not resolve the problem, it will make us forget about the problem, and apparently it may manifest itself on headful systems too. I added my own traces and I've found three issues with the code. **`E_PENDING`** https://github.com/openjdk/jdk/blob/8cb25d3de494c6d9357a1c199e1a9dbff9be9948/src/java.desktop/windows/classes/sun/awt/shell/Win32ShellFolder2.java#L1157-L1158 An icon handle could be negative: `hIcon = 0xffffffffa25400f7` is perfectly valid handle but it's rejected by our current code. The same problem exists two lines below: https://github.com/openjdk/jdk/blob/8cb25d3de494c6d9357a1c199e1a9dbff9be9948/src/java.desktop/windows/classes/sun/awt/shell/Win32ShellFolder2.java#L1161 **Result of `Extract`** https://github.com/openjdk/jdk/blob/8cb25d3de494c6d9357a1c199e1a9dbff9be9948/src/java.desktop/windows/native/libawt/windows/ShellFolder2.cpp#L997 The result of calling `Extract` isn't verified. This second error led to returning an invalid handle to the *(default)* folder icon. I saw it only for 16×16 icons, in all these cases something that looks like handle is returned, that is `hIcon` isn't null. Yet when the icon bits are extracted, `fn_GetIconInfo` returns an error code 0x57a - _Invalid cursor handle_. The two errors combined lead to quite a few *random* failures. No particular host reproduced the problem more often. Sometimes 5 of 10 tests failed, sometimes only 1 of 10. Yet none of the test runs I submitted succeeded before I resolved the above issues. I'll re-assign the bug to myself and submit a new PR after I do additional tests. ------------- PR: https://git.openjdk.org/jdk/pull/11104
