NonResponsive EDT when opening popup in Designer?

Using Ignition 8.1.47, Vision. Whenever I open up a specific popup from my local machine, my designer freezes. When I open the same popup on the gateway machine, it works fine. The popup runs completely fine in a vision client. My suspicion is this has something to do with a gateway round trip since it is working fine when working directly on the gateway machine and not when working remotely. It does not look like it’s anything regarding my components, nothing I recognize at least. Oddly enough I have a very similar popup window (that I based this one off of - copy / pasted and then modified) that works fine remotely.

Here’s the NonResponsiveEDT json file -

NonResponsiveEdt-2026-03-10_083403.json (66.1 KB)

Looks like something to do with loading icons maybe?

      "stacktrace": [
        "java.base@17.0.13/java.lang.Object.wait(Native Method)",
        "java.desktop@17.0.13/java.awt.MediaTracker.waitForID(Unknown Source)",
        "java.desktop@17.0.13/javax.swing.ImageIcon.loadImage(Unknown Source)",
        "java.desktop@17.0.13/javax.swing.ImageIcon.<init>(Unknown Source)",
        "java.desktop@17.0.13/javax.swing.ImageIcon.<init>(Unknown Source)",
        "com.inductiveautomation.ignition.designer.gui.IconUtil.getRootIcon(IconUtil.java:161)",
        "com.inductiveautomation.ignition.designer.gui.IconUtil.getRootIcon(IconUtil.java:130)",
        "com.inductiveautomation.ignition.designer.gui.IconUtil.getIncorsIcon(IconUtil.java:117)",
        "com.inductiveautomation.ignition.designer.gui.IconUtil.getIcon(IconUtil.java:113)",
        "com.inductiveautomation.ignition.designer.gui.IconUtil.getIcon(IconUtil.java:109)",
        "com.inductiveautomation.ignition.designer.i18n.config.QuickTranslationPanel$SearchPanel.<init>(QuickTranslationPanel.java:256)",
        "com.inductiveautomation.ignition.designer.i18n.config.QuickTranslationPanel.<init>(QuickTranslationPanel.java:55)",
        "com.inductiveautomation.factorypmi.designer.property.editors.TranslateableStringEditor.<init>(TranslateableStringEditor.java:49)",
        "com.inductiveautomation.factorypmi.designer.property.editors.StringPropertyEditor.initComponents(StringPropertyEditor.java:74)",
        "com.inductiveautomation.factorypmi.designer.property.editors.ConfiguratorEditorSupport.<init>(ConfiguratorEditorSupport.java:37)",
        "com.inductiveautomation.factorypmi.designer.property.editors.StringPropertyEditor.<init>(StringPropertyEditor.java:28)",
        "java.base@17.0.13/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)",
        "java.base@17.0.13/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)",
        "java.base@17.0.13/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)",
        "java.base@17.0.13/java.lang.reflect.Constructor.newInstanceWithCaller(Unknown Source)",
        "java.base@17.0.13/java.lang.reflect.ReflectAccess.newInstance(Unknown Source)",
        "java.base@17.0.13/jdk.internal.reflect.ReflectionFactory.newInstance(Unknown Source)",
        "java.base@17.0.13/java.lang.Class.newInstance(Unknown Source)",
        "java.desktop@17.0.13/com.sun.beans.finder.InstanceFinder.instantiate(Unknown Source)",
        "java.desktop@17.0.13/com.sun.beans.finder.PropertyEditorFinder.find(Unknown Source)",
        "java.desktop@17.0.13/java.beans.PropertyEditorManager.findEditor(Unknown Source)",
        "com.inductiveautomation.factorypmi.designer.property.propertytable.PropertyValueEditor.createEditor(PropertyValueEditor.java:239)",
        "com.inductiveautomation.factorypmi.designer.property.propertytable.PropertyValueEditor.getTableCellEditorComponent(PropertyValueEditor.java:112)",
        "com.inductiveautomation.factorypmi.designer.property.propertytable.PropertyValueEditor.getTableCellRendererComponent(PropertyValueEditor.java:91)",
        "com.jidesoft.grid.JideTable.a(Unknown Source)",
        "com.jidesoft.grid.CellStyleTable.a(Unknown Source)",
        "com.jidesoft.grid.JideTable.b(Unknown Source)",
        "com.jidesoft.grid.CellSpanTable.calculateRowHeight(Unknown Source)",
        "com.jidesoft.grid.JideTable.c(Unknown Source)",
        "com.jidesoft.grid.JideTable.getCellRect(Unknown Source)",
        "com.jidesoft.grid.CellSpanTable.originalGetCellRect(Unknown Source)",
        "com.jidesoft.plaf.basic.BasicCellSpanTableUIDelegate.b(Unknown Source)",
        "com.jidesoft.plaf.basic.BasicCellSpanTableUIDelegate.paint(Unknown Source)",
        "com.jidesoft.plaf.basic.BasicTreeTableUIDelegate.paint(Unknown Source)",
        "com.jidesoft.plaf.basic.BasicCellSpanTableUI.paint(Unknown Source)",
        "java.desktop@17.0.13/javax.swing.plaf.ComponentUI.update(Unknown Source)",
        "java.desktop@17.0.13/javax.swing.JComponent.paintComponent(Unknown Source)",
        "com.jidesoft.grid.CellStyleTable.paintComponent(Unknown Source)",

Just went through every single component. It’s all labels, buttons, text/numeric inputs thats it, no image components. There are a 4 buttons with image paths used but they are all hardcoded like

image

No other component uses a image path etc. Anything else I should be looking for specifically or should I just call into tech support?

I'm not sure it's anything you're doing... might be the code path triggering the loading of icons + it being slow in that specific environment for some reason.

@paul-griffith might have a better idea.

1 Like

Do you have any third party modules installed? Any broken image path references in icons/buttons/etc on the window?

I found these old JDK bugs with no satisfactory resolution blocked on the same MediaTracker.waitForID call. The older ticket suggests an unrelated exception in another thread might be causing the waitForID call to hang indefinitely - but if you're not seeing that other exception in the logs or anywhere else it'd be hard to troubleshoot.

https://bugs.openjdk.org/browse/JDK-4881229
https://bugs.openjdk.org/browse/JDK-6995182

You could try running the designer out of the terminal (using the command line logged into the designer launcher log file) so you can see if any exceptions are being logged just before the designer freezes.

1 Like

No third party modules.

Just 4 image paths - the ones on the buttons as in my path above which are hardcoded. I removed them on the local designer, saved, then tried opening on the remote designer but still froze.

Not sure I am running out of terminal correctly (using windows 11 here). Tried running this in command prompt

"C:\Users\PSIEmployee\AppData\Roaming\Inductive Automation\Designer Launcher\designerlauncher.exe" -Dapp.home=C:\Users\PSIEmployee\.ignition\clientlauncher-data -Dapplication=MyProject

in command prompt but it just launched and command prompt was not showing me any additional logs. If you can direct me on how to do that I will try it.

In the designerlauncher.log file there will be an entry that says “Launching designer with command…” or something like that, and then a huge command string. It’s that command you want to run in the terminal.

2 Likes

Leave off the leading nohup and trailing & if in Linux.

I did notice this occurs first thing when running designer via terminal

Platform serialFilter has 88 pattern(s)
Starting Bootstrap Loader v3.0
sun.awt.image.PNGImageDecoder$PNGException: crc corruption
        at java.desktop/sun.awt.image.PNGImageDecoder.getChunk(Unknown Source)
        at java.desktop/sun.awt.image.PNGImageDecoder.getData(Unknown Source)
        at java.desktop/sun.awt.image.PNGImageDecoder.produceImage(Unknown Source)
        at java.desktop/sun.awt.image.InputStreamImageSource.doFetch(Unknown Source)
        at java.desktop/sun.awt.image.ImageFetcher.fetchloop(Unknown Source)
        at java.desktop/sun.awt.image.ImageFetcher.run(Unknown Source)
Connect Step [attempt 1] connecting to: http://192.168.57.232:80...

Oddly when I tried pasting one of the image paths back I saw this, so I just reselected it from the images

08:37:09.672 [SwingWorker-pool-1-thread-7] WARN ignition.ImageLoader -- Unable to check CRC of image "Builtin/icons/24/check2.png " due to error.java.io.FileNotFoundException: http://169.254.97.165:80/system/images/Builtin/icons/24/check2.png%20?crc=trueat java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(Unknown Source)at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)at java.base/java.net.URL.openStream(Unknown Source)at com.inductiveautomation.ignition.client.images.ImageLoader.loadBytesDiskCache(ImageLoader.java:305)at com.inductiveautomation.ignition.client.images.ImageLoader$ImageInfo.loadImage(ImageLoader.java:386)at com.inductiveautomation.ignition.client.images.ImageLoader$ImageInfo.(ImageLoader.java:371)at com.inductiveautomation.ignition.client.images.ImageLoader$1.load(ImageLoader.java:71)at com.inductiveautomation.ignition.client.images.ImageLoader$1.load(ImageLoader.java:67)at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3570)at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2312)at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2189)at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2079)at com.google.common.cache.LocalCache.get(LocalCache.java:4011)at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:4034)at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:5010)at com.google.common.cache.LocalCache$LocalLoadingCache.getUnchecked(LocalCache.java:5017)at com.inductiveautomation.ignition.client.images.ImageLoader.getImageData(ImageLoader.java:238)at com.inductiveautomation.ignition.client.images.ImageLoader.loadImageMemCache(ImageLoader.java:212)at com.inductiveautomation.ignition.client.images.ImageLoader.loadImage(ImageLoader.java:169)at com.inductiveautomation.ignition.client.images.PathIcon$LoadImageTask.doInBackground(PathIcon.java:317)at com.inductiveautomation.ignition.client.images.PathIcon$LoadImageTask.doInBackground(PathIcon.java:298)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)

However I think the image stuff was all a red herring downstream of the real issue. Found a runScript expression that I think was causing a swing deadlock. Commenting it out and everything works fine. So I am fixing how that works now.

That makes more sense.

The non-responsive EDT detection stuff is best effort - it's possible that by the time it captures its thread dump the thing actually blocking the EDT has stopped, so the thread dump just shows whatever the current state is.

2 Likes