On Mon, 6 Jul 2026 15:11:51 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 the JDK: https://github.com/openjdk/jdk/pull/31791 > > - [x] I confirm that I make this contribution in accordance with the [OpenJDK > Interim AI Policy](https://openjdk.org/legal/ai). @pabulaner You _must not_ use the same JBS bug ID for a fix that spans JavaFX and JDK. You will need to file a new JBS issue for JavaFX and change the title of this jfx PR to use that new bug ID. Also, this will need careful coordination and some discussion before it proceeds. I won't even have time to look at it before the jfx27 fork (and since JDK has already forked for JDK 28, this isn't a candidate for jfx27 anyway). ------------- PR Comment: https://git.openjdk.org/jfx/pull/2203#issuecomment-4894764456
