Trying to find the source of a warning

I’m getting a particular warning repeated over and over (many times per minute) in the log viewer, but Ithere does not seem to be any indication what window or control the warning is coming from, just that it seems to be the binding on a PropertyChange event.

Is there an easy way to find the window and control that is generating the warning? The stack trace is below.

Message: Error trying to coerce ‘-’ [String] to a class java.lang.Integer
Logger: Vision.Binding.ExpressionPropertyAdapter

java.lang.ClassCastException: Error trying to coerce ‘-’ [String] to a class java.lang.Integer at com.inductiveautomation.ignition.common.TypeUtilities.coerce(TypeUtilities.java:934) at com.inductiveautomation.factorypmi.application.binding.AbstractPropertyAdapter.setQValue(AbstractPropertyAdapter.java:216) at com.inductiveautomation.factorypmi.application.binding.AbstractPropertyAdapter.updateValue(AbstractPropertyAdapter.java:256) at com.inductiveautomation.factorypmi.application.binding.ExpressionPropertyAdapter.runExpression(ExpressionPropertyAdapter.java:79) at com.inductiveautomation.factorypmi.application.binding.ExpressionPropertyAdapter.childInteractionUpdated(ExpressionPropertyAdapter.java:50) at com.inductiveautomation.factorypmi.application.binding.PropertyListenerDescriptor.propertyChange(PropertyListenerDescriptor.java:79) at java.beans.PropertyChangeSupport.fire(Unknown Source) at java.beans.PropertyChangeSupport.firePropertyChange(Unknown Source) at java.beans.PropertyChangeSupport.firePropertyChange(Unknown Source) at java.awt.Component.firePropertyChange(Unknown Source) at sun.reflect.GeneratedMethodAccessor35.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at com.inductiveautomation.factorypmi.application.binding.util.DynamicPropertyUtil.firePropertyChange(DynamicPropertyUtil.java:265) at com.inductiveautomation.factorypmi.application.components.overlay.OverlayUtility.updateQuality(OverlayUtility.java:387) at com.inductiveautomation.factorypmi.application.components.PMILabel.updateQuality(PMILabel.java:322) at com.inductiveautomation.factorypmi.application.binding.AbstractPropertyAdapter.updateQuality(AbstractPropertyAdapter.java:230) at com.inductiveautomation.factorypmi.application.binding.AbstractPropertyAdapter.updateValue(AbstractPropertyAdapter.java:255) at com.inductiveautomation.factorypmi.application.binding.SimpleBoundTagAdapter.notifyTagChanged(SimpleBoundTagAdapter.java:486) at com.inductiveautomation.factorypmi.application.binding.SimpleBoundTagAdapter.tagChanged(SimpleBoundTagAdapter.java:475) at com.inductiveautomation.ignition.client.sqltags.impl.db.DatasourceTagManager$TagChangeListenerProxy.tagChanged(DatasourceTagManager.java:1063) at com.inductiveautomation.ignition.client.sqltags.impl.db.DatasourceTagManager.subscribe(DatasourceTagManager.java:291) at com.inductiveautomation.ignition.client.sqltags.impl.ClientTagManagerImpl.subscribe(ClientTagManagerImpl.java:385) at com.inductiveautomation.factorypmi.application.binding.SimpleBoundTagAdapter.startup(SimpleBoundTagAdapter.java:140) at com.inductiveautomation.factorypmi.application.binding.IndirectTagBindingAdapter.updateTagPath(IndirectTagBindingAdapter.java:97) at com.inductiveautomation.factorypmi.application.binding.IndirectTagBindingAdapter.childInteractionUpdated(IndirectTagBindingAdapter.java:118) at com.inductiveautomation.factorypmi.application.binding.PropertyListenerDescriptor.propertyChange(PropertyListenerDescriptor.java:72) at java.beans.PropertyChangeSupport.fire(Unknown Source) at java.beans.PropertyChangeSupport.firePropertyChange(Unknown Source) at java.beans.PropertyChangeSupport.firePropertyChange(Unknown Source) at java.awt.Component.firePropertyChange(Unknown Source) at sun.reflect.GeneratedMethodAccessor35.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at com.inductiveautomation.factorypmi.application.binding.util.DynamicPropertyUtil.firePropertyChange(DynamicPropertyUtil.java:265) at com.inductiveautomation.factorypmi.application.binding.util.DynamicPropertyUtil.setPropertyValue(DynamicPropertyUtil.java:256) at com.inductiveautomation.factorypmi.application.components.PMILabel.setPropertyValue(PMILabel.java:284) at com.inductiveautomation.factorypmi.application.binding.AbstractPropertyAdapter.updateTarget(AbstractPropertyAdapter.java:293) at com.inductiveautomation.factorypmi.application.binding.AbstractPropertyAdapter.updateValue(AbstractPropertyAdapter.java:258) at com.inductiveautomation.factorypmi.application.binding.ExpressionPropertyAdapter.runExpression(ExpressionPropertyAdapter.java:79) at com.inductiveautomation.factorypmi.application.binding.ExpressionPropertyAdapter.childInteractionUpdated(ExpressionPropertyAdapter.java:50) at com.inductiveautomation.factorypmi.application.binding.PropertyListenerDescriptor.propertyChange(PropertyListenerDescriptor.java:72) at java.beans.PropertyChangeSupport.fire(Unknown Source) at java.beans.PropertyChangeSupport.firePropertyChange(Unknown Source) at java.beans.PropertyChangeSupport.firePropertyChange(Unknown Source) at java.awt.Component.firePropertyChange(Unknown Source) at sun.reflect.GeneratedMethodAccessor35.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at com.inductiveautomation.factorypmi.application.binding.util.DynamicPropertyUtil.firePropertyChange(DynamicPropertyUtil.java:265) at com.inductiveautomation.factorypmi.application.binding.util.DynamicPropertyUtil.setPropertyValue(DynamicPropertyUtil.java:256) at com.inductiveautomation.vision.api.client.components.model.AbstractVisionPanel.setPropertyValue(AbstractVisionPanel.java:127) at com.inductiveautomation.factorypmi.application.binding.AbstractPropertyAdapter.updateTarget(AbstractPropertyAdapter.java:293) at com.inductiveautomation.factorypmi.application.binding.SQLPropertyAdapter.updateTarget(SQLPropertyAdapter.java:270) at com.inductiveautomation.factorypmi.application.binding.AbstractPropertyAdapter.updateValue(AbstractPropertyAdapter.java:258) at com.inductiveautomation.factorypmi.application.binding.SQLPropertyAdapter.handleQueryReturnedValue(SQLPropertyAdapter.java:307) at com.inductiveautomation.factorypmi.application.gateway.QueryManager$HandleReturnValueTask.run(QueryManager.java:511) at java.awt.event.InvocationEvent.dispatch(Unknown Source) at java.awt.EventQueue.dispatchEventImpl(Unknown Source) at java.awt.EventQueue.access$200(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source)

There’s not an easy way to find where exactly that warning is coming from but it looks like it is coming from a label that may be bound indirectly to a tag. I know that could describe hundreds of different components in your project but unfortunately there is nothing any more specific in that stack trace that I can see.

Are these anything? To me, they look a bit like user-generated names, but since I have zero knowledge of the project, I’m really just throwing a dart… :unamused:

Anyway, it jumped at me a bit with all of the similar nomenclature and all at the end of the trace.

And, lastly, sorry to jump in late… :blush:

You could make a copy of your project. Then start deleting windows and checking for the error. When the error disappears then the error lies in the last window you deleted.

Add the window back and start deleting components and look for the error. When the error disappears then the error is in the last component you deleted.