StackOverflowError caused by infinite exception loop

Ignition 8.1.18. I am getting an occasional error on clients where vision will freeze during a login. We are using a custom login screen. After 30 seconds, an error box pops up. The initial error appears to cause an infinite exception loop, building up the stack trace for each exception until the stack overflows. The stack trace for the final exception is 550 lines long. The full error message looks like this.

java.lang.RuntimeException: Cannot call Component.firePropertyChange.
    at com.inductiveautomation.factorypmi.application.binding.util.DynamicPropertyUtil.firePropertyChange(DynamicPropertyUtil.java:293)
    at com.inductiveautomation.factorypmi.application.components.overlay.OverlayUtility.updateQuality(OverlayUtility.java:418)
    at com.inductiveautomation.vision.api.client.components.model.AbstractVisionPanel.updateQuality(AbstractVisionPanel.java:298)
......
Caused by: java.lang.reflect.InvocationTargetException
    at java.base/jdk.internal.reflect.GeneratedMethodAccessor68.invoke(Unknown Source)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.base/java.lang.reflect.Method.invoke(Unknown Source)
    at com.inductiveautomation.factorypmi.application.binding.util.DynamicPropertyUtil.firePropertyChange(DynamicPropertyUtil.java:291)
... 94 more
Caused by: java.lang.RuntimeException: Cannot call Component.firePropertyChange.
    at com.inductiveautomation.factorypmi.application.binding.util.DynamicPropertyUtil.firePropertyChange(DynamicPropertyUtil.java:293)
    at com.inductiveautomation.factorypmi.application.components.overlay.OverlayUtility.updateQuality(OverlayUtility.java:418)
    at com.inductiveautomation.factorypmi.application.components.PMIComboBox.updateQuality(PMIComboBox.java:871)
    at com.inductiveautomation.factorypmi.application.binding.AbstractPropertyAdapter.updateQuality(AbstractPropertyAdapter.java:242)
    at com.inductiveautomation.factorypmi.application.binding.SimpleBoundPropertyAdapter.propertyChange(SimpleBoundPropertyAdapter.java:124)
    at java.desktop/java.beans.PropertyChangeSupport.fire(Unknown Source)
    at java.desktop/java.beans.PropertyChangeSupport.firePropertyChange(Unknown Source)
    at java.desktop/java.beans.PropertyChangeSupport.firePropertyChange(Unknown Source)
    at java.desktop/java.awt.Component.firePropertyChange(Unknown Source)
... 98 more
Caused by: java.lang.reflect.InvocationTargetException
    at java.base/jdk.internal.reflect.GeneratedMethodAccessor68.invoke(Unknown Source)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.base/java.lang.reflect.Method.invoke(Unknown Source)
    at com.inductiveautomation.factorypmi.application.binding.util.DynamicPropertyUtil.firePropertyChange(DynamicPropertyUtil.java:291)
... 106 more

Attempting to view the error in the client Help > Log Viewer throws an OutOfMemoryException because the error is so large.

It looks like you might have a self-referential binding loop. You should contact support, they should be able to help you salvage this window.

2 Likes