On Mon, 13 Apr 2026 22:07:42 GMT, Phil Race <[email protected]> wrote:
> There are about 26 modal FileDialog tests marked as failing on macOS due to > this bug. > They test the various modality cases for FileDialog. > > The missing macOS support for FileDialog.dispose() affects these tests since > they require dispose() > to work to dismiss the dialogs after checking the modality support. > > In the macOS native code the FileDialog (an NSOpenPanel) is displayed by > calling a macOS API "runModalWithDirectory". So it is modal. > That runModalWithDirectory API is deprecated, but the replacement "runModal" > is the same as far as this issue goes. > There is no macOS API to directly hide or progammatically "cancel" the > dialog. In fact the latter is explicitly disallowed. > > But I have found that there is a macOS API "stopModal" which will break the > loop and dismiss the dialog. > It seems to work well for these tests. There is a corner-case issue that > stopModal doesn't take a window parameter. > Therefore care needs to be taken so that we only stop the loop if the current > modal window is the one for this FileDialog. > > 24 of the 26 tests assume application modal behaviour of the dialog and pass > with that fix. > > Also the ones marked as failing on Linux haven't failed at all for me in all > my test runs, so all of these are de-problem listed. > > The 2 that still fail because they require docmodal/modeless are marked as > !Mac > Per the spec there's no requirement to support this, even though apparently > Linux & Mac do. > > class doc says : "The FileDialog class displays a dialog window from which > the user can select a file. > Since it is a modal dialog, when the application calls its show method to > display the dialog, it blocks the rest of the application until the user has > chosen a file." > > The change to test !inDispose is fully explained in the JBS issue, but > briefly it is required to prevent > the thread running the dialog from hanging if dispose is called by the > application. > > --------- > - [x] I confirm that I make this contribution in accordance with the [OpenJDK > Interim AI Policy](https://openjdk.org/legal/ai). Works on my systems. ------------- Marked as reviewed by kizune (Reviewer). PR Review: https://git.openjdk.org/jdk/pull/30715#pullrequestreview-4174027038
