Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG] UI completely breaks on Java 17 (sometimes) #6357

Open
ChristopherSchultz opened this issue Nov 19, 2024 · 3 comments
Open

[BUG] UI completely breaks on Java 17 (sometimes) #6357

ChristopherSchultz opened this issue Nov 19, 2024 · 3 comments
Labels
bug Something isn't working

Comments

@ChristopherSchultz
Copy link
Contributor

In MCA on Java 17, MacOS Sequoia 15.1, aarch64, the UI can get really fouled-up.

Everything is fine, until it's not.

Selecting any message in a channel becomes virtually impossible. Clicking on a row causes only some of the cells to be highlighted, and the UI does not respond as if the row has been selected at all (e.g. message preview says "choose a message to view").

After this happens once, the UI is unrecoverable and you have to restart MCAL.

Sometimes it happens right away, sometimes it takes hours or days since starting MCA.

This time, I caught the stack trace in the log. Here it is:

Using JRE version 17.0.6+10-LTS OpenJDK 64-Bit Server VM
Java home directory = /Applications/Mirth Connect Administrator Launcher.app/Contents/PlugIns/jre.bundle/Contents/Home
User home directory = /Users/chris
----------------------------------------------------
l:  Clear console window
s:  Dump system properties
----------------------------------------------------
Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: column must be valid, was-1
	at org.jdesktop.swingx.JXTreeTable.isHierarchical(JXTreeTable.java:2022)
	at org.jdesktop.swingx.JXTreeTable.getEditingRow(JXTreeTable.java:1162)
	at java.desktop/javax.swing.JTable$AccessibleJTable.getAccessibleChild(Unknown Source)
	at java.desktop/javax.swing.JTable$AccessibleJTable.getAccessibleAt(Unknown Source)
	at java.desktop/javax.swing.JTable$AccessibleJTable.valueChanged(Unknown Source)
	at java.desktop/javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown Source)
	at java.desktop/javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown Source)
	at java.desktop/javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown Source)
	at java.desktop/javax.swing.DefaultListSelectionModel.changeSelection(Unknown Source)
	at java.desktop/javax.swing.DefaultListSelectionModel.changeSelection(Unknown Source)
	at java.desktop/javax.swing.DefaultListSelectionModel.setSelectionInterval(Unknown Source)
	at java.desktop/javax.swing.JTable.changeSelectionModel(Unknown Source)
	at java.desktop/javax.swing.JTable.changeSelection(Unknown Source)
	at java.desktop/javax.swing.plaf.basic.BasicTableUI$Handler.adjustSelection(Unknown Source)
	at java.desktop/javax.swing.plaf.basic.BasicTableUI$Handler.mousePressedDND(Unknown Source)
	at java.desktop/javax.swing.plaf.basic.BasicTableUI$Handler.mousePressed(Unknown Source)
	at java.desktop/java.awt.AWTEventMulticaster.mousePressed(Unknown Source)
	at java.desktop/java.awt.AWTEventMulticaster.mousePressed(Unknown Source)
	at java.desktop/java.awt.AWTEventMulticaster.mousePressed(Unknown Source)
	at java.desktop/java.awt.Component.processMouseEvent(Unknown Source)
	at java.desktop/javax.swing.JComponent.processMouseEvent(Unknown Source)
	at org.jdesktop.swingx.JXTreeTable.processMouseEvent(JXTreeTable.java:396)
	at java.desktop/java.awt.Component.processEvent(Unknown Source)
	at java.desktop/java.awt.Container.processEvent(Unknown Source)
	at java.desktop/java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.Component.dispatchEvent(Unknown Source)
	at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
	at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
	at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
	at java.desktop/java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.Window.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.Component.dispatchEvent(Unknown Source)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
	at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
	at java.base/java.security.AccessController.doPrivileged(Unknown Source)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.desktop/java.awt.EventQueue$5.run(Unknown Source)
	at java.desktop/java.awt.EventQueue$5.run(Unknown Source)
	at java.base/java.security.AccessController.doPrivileged(Unknown Source)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.desktop/java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.run(Unknown Source)
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException: Cannot invoke "com.mirth.connect.donkey.model.message.Message.getConnectorMessages()" because "currentMessage" is null
	at com.mirth.connect.client.ui.browsers.message.MessageBrowser$12.mouseClicked(MessageBrowser.java:1291)
	at java.desktop/java.awt.AWTEventMulticaster.mouseClicked(Unknown Source)
	at java.desktop/java.awt.Component.processMouseEvent(Unknown Source)
	at java.desktop/javax.swing.JComponent.processMouseEvent(Unknown Source)
	at org.jdesktop.swingx.JXTreeTable.processMouseEvent(JXTreeTable.java:396)
	at java.desktop/java.awt.Component.processEvent(Unknown Source)
	at java.desktop/java.awt.Container.processEvent(Unknown Source)
	at java.desktop/java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.Component.dispatchEvent(Unknown Source)
	at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
	at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
	at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
	at java.desktop/java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.Window.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.Component.dispatchEvent(Unknown Source)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
	at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
	at java.base/java.security.AccessController.doPrivileged(Unknown Source)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.desktop/java.awt.EventQueue$5.run(Unknown Source)
	at java.desktop/java.awt.EventQueue$5.run(Unknown Source)
	at java.base/java.security.AccessController.doPrivileged(Unknown Source)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.desktop/java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.run(Unknown Source)
Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: column must be valid, was-1
	at org.jdesktop.swingx.JXTreeTable.isHierarchical(JXTreeTable.java:2022)
	at org.jdesktop.swingx.JXTreeTable.getEditingRow(JXTreeTable.java:1162)
	at java.desktop/javax.swing.JTable$AccessibleJTable.getAccessibleChild(Unknown Source)
	at java.desktop/javax.swing.JTable$AccessibleJTable.getAccessibleAt(Unknown Source)
	at java.desktop/javax.swing.JTable$AccessibleJTable.valueChanged(Unknown Source)
	at java.desktop/javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown Source)
	at java.desktop/javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown Source)
	at java.desktop/javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown Source)
	at java.desktop/javax.swing.DefaultListSelectionModel.changeSelection(Unknown Source)
	at java.desktop/javax.swing.DefaultListSelectionModel.changeSelection(Unknown Source)
	at java.desktop/javax.swing.DefaultListSelectionModel.setSelectionInterval(Unknown Source)
	at java.desktop/javax.swing.JTable.changeSelectionModel(Unknown Source)
	at java.desktop/javax.swing.JTable.changeSelection(Unknown Source)
	at java.desktop/javax.swing.plaf.basic.BasicTableUI$Handler.adjustSelection(Unknown Source)
	at java.desktop/javax.swing.plaf.basic.BasicTableUI$Handler.mousePressedDND(Unknown Source)
	at java.desktop/javax.swing.plaf.basic.BasicTableUI$Handler.mousePressed(Unknown Source)
	at java.desktop/java.awt.AWTEventMulticaster.mousePressed(Unknown Source)
	at java.desktop/java.awt.AWTEventMulticaster.mousePressed(Unknown Source)
	at java.desktop/java.awt.AWTEventMulticaster.mousePressed(Unknown Source)
	at java.desktop/java.awt.Component.processMouseEvent(Unknown Source)
	at java.desktop/javax.swing.JComponent.processMouseEvent(Unknown Source)
	at org.jdesktop.swingx.JXTreeTable.processMouseEvent(JXTreeTable.java:396)
	at java.desktop/java.awt.Component.processEvent(Unknown Source)
	at java.desktop/java.awt.Container.processEvent(Unknown Source)
	at java.desktop/java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.Component.dispatchEvent(Unknown Source)
	at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
	at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
	at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
	at java.desktop/java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.Window.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.Component.dispatchEvent(Unknown Source)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
	at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
	at java.base/java.security.AccessController.doPrivileged(Unknown Source)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.desktop/java.awt.EventQueue$5.run(Unknown Source)
	at java.desktop/java.awt.EventQueue$5.run(Unknown Source)
	at java.base/java.security.AccessController.doPrivileged(Unknown Source)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.desktop/java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.run(Unknown Source)
Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: column must be valid, was-1
	at org.jdesktop.swingx.JXTreeTable.isHierarchical(JXTreeTable.java:2022)
	at org.jdesktop.swingx.JXTreeTable.getEditingRow(JXTreeTable.java:1162)
	at java.desktop/javax.swing.JTable$AccessibleJTable.getAccessibleChild(Unknown Source)
	at java.desktop/javax.swing.JTable$AccessibleJTable.getAccessibleAt(Unknown Source)
	at java.desktop/javax.swing.JTable$AccessibleJTable.valueChanged(Unknown Source)
	at java.desktop/javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown Source)
	at java.desktop/javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown Source)
	at java.desktop/javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown Source)
	at java.desktop/javax.swing.DefaultListSelectionModel.changeSelection(Unknown Source)
	at java.desktop/javax.swing.DefaultListSelectionModel.changeSelection(Unknown Source)
	at java.desktop/javax.swing.DefaultListSelectionModel.setSelectionInterval(Unknown Source)
	at java.desktop/javax.swing.DefaultListSelectionModel.addSelectionInterval(Unknown Source)
	at java.desktop/javax.swing.plaf.basic.BasicTableUI$Handler.mousePressedDND(Unknown Source)
	at java.desktop/javax.swing.plaf.basic.BasicTableUI$Handler.mousePressed(Unknown Source)
	at java.desktop/java.awt.AWTEventMulticaster.mousePressed(Unknown Source)
	at java.desktop/java.awt.AWTEventMulticaster.mousePressed(Unknown Source)
	at java.desktop/java.awt.AWTEventMulticaster.mousePressed(Unknown Source)
	at java.desktop/java.awt.Component.processMouseEvent(Unknown Source)
	at java.desktop/javax.swing.JComponent.processMouseEvent(Unknown Source)
	at org.jdesktop.swingx.JXTreeTable.processMouseEvent(JXTreeTable.java:396)
	at java.desktop/java.awt.Component.processEvent(Unknown Source)
	at java.desktop/java.awt.Container.processEvent(Unknown Source)
	at java.desktop/java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.Component.dispatchEvent(Unknown Source)
	at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
	at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
	at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
	at java.desktop/java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.Window.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.Component.dispatchEvent(Unknown Source)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
	at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
	at java.base/java.security.AccessController.doPrivileged(Unknown Source)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.desktop/java.awt.EventQueue$5.run(Unknown Source)
	at java.desktop/java.awt.EventQueue$5.run(Unknown Source)
	at java.base/java.security.AccessController.doPrivileged(Unknown Source)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.desktop/java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.run(Unknown Source)
Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: column must be valid, was-1
	at org.jdesktop.swingx.JXTreeTable.isHierarchical(JXTreeTable.java:2022)
	at org.jdesktop.swingx.JXTreeTable.getEditingRow(JXTreeTable.java:1162)
	at java.desktop/javax.swing.JTable$AccessibleJTable.getAccessibleChild(Unknown Source)
	at java.desktop/javax.swing.JTable$AccessibleJTable.getAccessibleAt(Unknown Source)
	at java.desktop/javax.swing.JTable$AccessibleJTable.valueChanged(Unknown Source)
	at java.desktop/javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown Source)
	at java.desktop/javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown Source)
	at java.desktop/javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown Source)
	at java.desktop/javax.swing.DefaultListSelectionModel.changeSelection(Unknown Source)
	at java.desktop/javax.swing.DefaultListSelectionModel.changeSelection(Unknown Source)
	at java.desktop/javax.swing.DefaultListSelectionModel.setSelectionInterval(Unknown Source)
	at java.desktop/javax.swing.JTable.changeSelectionModel(Unknown Source)
	at java.desktop/javax.swing.JTable.changeSelection(Unknown Source)
	at java.desktop/javax.swing.plaf.basic.BasicTableUI$Handler.adjustSelection(Unknown Source)
	at java.desktop/javax.swing.plaf.basic.BasicTableUI$Handler.mousePressedDND(Unknown Source)
	at java.desktop/javax.swing.plaf.basic.BasicTableUI$Handler.mousePressed(Unknown Source)
	at java.desktop/java.awt.AWTEventMulticaster.mousePressed(Unknown Source)
	at java.desktop/java.awt.AWTEventMulticaster.mousePressed(Unknown Source)
	at java.desktop/java.awt.AWTEventMulticaster.mousePressed(Unknown Source)
	at java.desktop/java.awt.Component.processMouseEvent(Unknown Source)
	at java.desktop/javax.swing.JComponent.processMouseEvent(Unknown Source)
	at org.jdesktop.swingx.JXTreeTable.processMouseEvent(JXTreeTable.java:396)
	at java.desktop/java.awt.Component.processEvent(Unknown Source)
	at java.desktop/java.awt.Container.processEvent(Unknown Source)
	at java.desktop/java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.Component.dispatchEvent(Unknown Source)
	at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
	at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
	at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
	at java.desktop/java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.Window.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.Component.dispatchEvent(Unknown Source)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
	at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
	at java.base/java.security.AccessController.doPrivileged(Unknown Source)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.desktop/java.awt.EventQueue$5.run(Unknown Source)
	at java.desktop/java.awt.EventQueue$5.run(Unknown Source)
	at java.base/java.security.AccessController.doPrivileged(Unknown Source)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.desktop/java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.run(Unknown Source)
@ChristopherSchultz ChristopherSchultz added the bug Something isn't working label Nov 19, 2024
@ChristopherSchultz
Copy link
Contributor Author

Once I see this stack trace once, it will happen again every time I even load the Channels browser. I don't even have to go to an individual channel. Clicking on any channel (once) causes another stack trace in the log and selection does not work properly (channels stay selected, or partially-selected, newly-clicked ones are not selected, old ones aren't de-selected, etc.) Same thing with the Dashboard, except that loading the Dashboard doesn't trigger an error, only (single) clicking on a channel will generate another stack trace.

@ChristopherSchultz
Copy link
Contributor Author

I will be running with Java 8 to see if it also (eventually) fails, there.

@ChristopherSchultz
Copy link
Contributor Author

Oh, this is MCA 4.5.0 BTW.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant