On Mon, 6 Jul 2026 15:12:32 GMT, Pabulaner IV <[email protected]> wrote:
> # Problem description > > When You create a JavaFX native application with *jpackage* for macOS You > will run into an issue when trying to handle URIs. When Your application > isn’t running and You have it registered for handling certain types of URIs > it won’t receive the first URI. > > ## Here is a simple example: > > If You have a JavaFX application that handles URIs for example of the form > *openurifx://your-content* and You have it installed with *jpackage* for > macOS and now You try to handle an URI by running the following command: > > ``` open openurifx://hello-world ``` > > The application will open, but it won’t receive the above URI. If You call > the same command after the application is already running, everything will > work fine and the application will receive the URI. > > # Problem cause > > The cause of the problem is that when You build a JavaFX application and want > to handle URIs You will have to combine JavaFX and AWT as AWT provides the > URI handling capabilities. So the startup process is as follows: > > 1. JavaFX is initialized > 2. JavaFX forwards the URI event to AWT > 3. AWT is initialized > 4. AWT is ready to handle URI events from JavaFX > > The issue is that the URI event is delivered before AWT can handle it and > therefore is simple dropped. That’s why later URIs will be received and are > handled properly. > > # Fix > > The fix is that JavaFX will wait until it receives a ready event from AWT so > JavaFX knows that AWT is able to handle events now. After that it will > forward all buffered URIs and therefore everything will be handled correctly. > This means that the fix involves both the JFX and JDK repositories and needs > to be integrated in both. > > **Note**: In the case that a user has only a fix for the JFX part the URIs > won’t be delivered at all, but there won’t be any error. This means that > JavaFX applications won’t be able to handle any URIs so it might be an idea > to add an environment variable to tell JavaFX to not wait for an AWT ready > event. Then the first URI event would be lost, but at least all the following > events would be handled properly. > > # Tests > > To test the error and the fix You can clone this repository: > https://github.com/pabulaner/openurifx and checkout the branch *first-url*. > There You will find a README.md with further instructions. > > PR inside JFX: https://github.com/openjdk/jfx/pull/2203 > > - [x] I confirm that I make this contribution in accordance with the [OpenJDK > Interim AI Policy](https://openjdk.org/legal/ai). I don't see any harm in AWT sending such a message, although perhaps a CSR is needed. The impact seems to be on the FX side, I don't know that I like that you essentially force the JDK-baseline for FX to be one that has this fix. Perhaps some other way to determine that AWT is loaded can be used. Or there should be a "cap" on how long it waits. I'll post this comment in the FX PR too. ------------- PR Comment: https://git.openjdk.org/jdk/pull/31791#issuecomment-5006796646
