-
Notifications
You must be signed in to change notification settings - Fork 54
Open
Labels
bugSomething isn't workingSomething isn't working
Description
Description
When users attempt to run the Mirth Connect Client using a JRE that does not include JavaFX (e.g., Standard SE distributions), the application crashes deep in the initialization process. Instead of a clear warning, users are met with an unclear warning. Log output is a complex stack trace that makes it difficult to diagnose the environment issue.
Steps to Reproduce
- Install a JRE that excludes JavaFX (e.g., standard Oracle JRE or Zulu SE).
- Launch the Client.
- Login
Actual Behavior
The application crashes with the following error:
Console output:
InteropFactory: cannot load com.sun.javafx.embed.swing.newimpl.InteropFactoryN
Graphics Device initialization failed for : es2, sw
Error initializing QuantumRenderer: no suitable pipeline found
java.lang.RuntimeException: java.lang.RuntimeException: Error initializing QuantumRenderer: no suitable pipeline found
at com.sun.javafx.tk.quantum.QuantumRenderer.getInstance(QuantumRenderer.java:280)
at com.sun.javafx.tk.quantum.QuantumToolkit.init(QuantumToolkit.java:222)
at com.sun.javafx.tk.Toolkit.getToolkit(Toolkit.java:260)
at com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:267)
at com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:158)
at javafx.embed.swing.JFXPanel.initFx(JFXPanel.java:251)
at javafx.embed.swing.JFXPanel.<init>(JFXPanel.java:267)
at com.mirth.connect.client.ui.components.tag.MirthTagField.initComponents(MirthTagField.java:135)
at com.mirth.connect.client.ui.components.tag.MirthTagField.<init>(MirthTagField.java:84)
at com.mirth.connect.client.ui.ChannelPanel.initComponents(ChannelPanel.java:3374)
at com.mirth.connect.client.ui.ChannelPanel.<init>(ChannelPanel.java:204)
at com.mirth.connect.client.ui.Frame.setupFrame(Frame.java:562)
at com.mirth.connect.client.ui.Mirth.<init>(Mirth.java:60)
at com.mirth.connect.client.ui.LoginPanel$8.handleSuccess(LoginPanel.java:561)
at com.mirth.connect.client.ui.LoginPanel$8.doInBackground(LoginPanel.java:450)
at com.mirth.connect.client.ui.LoginPanel$8.doInBackground(LoginPanel.java:419)
at java.desktop/javax.swing.SwingWorker$1.call(Unknown Source)
at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
at java.desktop/javax.swing.SwingWorker.run(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)
Caused by: java.lang.RuntimeException: Error initializing QuantumRenderer: no suitable pipeline found
at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.init(QuantumRenderer.java:94)
at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:124)
... 1 more
java.lang.RuntimeException: No toolkit found
at com.sun.javafx.tk.Toolkit.getToolkit(Toolkit.java:272)
at com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:267)
at com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:158)
at javafx.embed.swing.JFXPanel.initFx(JFXPanel.java:251)
at javafx.embed.swing.JFXPanel.<init>(JFXPanel.java:267)
at com.mirth.connect.client.ui.components.tag.MirthTagField.initComponents(MirthTagField.java:135)
at com.mirth.connect.client.ui.components.tag.MirthTagField.<init>(MirthTagField.java:84)
at com.mirth.connect.client.ui.ChannelPanel.initComponents(ChannelPanel.java:3374)
at com.mirth.connect.client.ui.ChannelPanel.<init>(ChannelPanel.java:204)
at com.mirth.connect.client.ui.Frame.setupFrame(Frame.java:562)
at com.mirth.connect.client.ui.Mirth.<init>(Mirth.java:60)
at com.mirth.connect.client.ui.LoginPanel$8.handleSuccess(LoginPanel.java:561)
at com.mirth.connect.client.ui.LoginPanel$8.doInBackground(LoginPanel.java:450)
at com.mirth.connect.client.ui.LoginPanel$8.doInBackground(LoginPanel.java:419)
at java.desktop/javax.swing.SwingWorker$1.call(Unknown Source)
at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
at java.desktop/javax.swing.SwingWorker.run(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)
Expected Behavior
The application should detect the absence of JavaFX during startup and provide a user-friendly error message explaining that a JavaFX-enabled JRE is required.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working