Error when using find/replace

when trying to use find/replace i am receiving the following error.

[quote]com.inductiveautomation.ignition.common.xmlserialization.SerializationException: Error invoking [PMIComboBox]com.inductiveautomation.factorypmi.application.components.PMIComboBox[ddHopVariety,304,311,179x32,invalid,hidden,layout=javax.swing.plaf.basic.BasicComboBoxUI$Handler,alignmentX=0.0,alignmentY=0.0,border=com.incors.plaf.alloy.cu@1b865cd,flags=328,maximumSize=,minimumSize=,preferredSize=java.awt.Dimension[width=120,height=24],isEditable=false,lightWeightPopupEnabled=true,maximumRowCount=8,selectedItemReminder=].setData(Dataset [1R ⅹ 1C])
at com.inductiveautomation.ignition.common.xmlserialization.deserialization.handlers.ObjectDeserializationHandler.endSubElement(ObjectDeserializationHandler.java:81)
at com.inductiveautomation.factorypmi.application.xmlserialization.ComponentDeserializationHandler.endSubElement(ComponentDeserializationHandler.java:93)
at com.inductiveautomation.ignition.common.xmlserialization.deserialization.XMLDeserializer$ParseContext.onElementEnd(XMLDeserializer.java:637)
at com.inductiveautomation.ignition.common.xmlserialization.deserialization.XMLParser.endElement(XMLParser.java:97)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
at com.inductiveautomation.ignition.common.xmlserialization.deserialization.XMLDeserializer.deserializeXML(XMLDeserializer.java:330)
at com.inductiveautomation.ignition.common.xmlserialization.deserialization.XMLDeserializer.deserialize(XMLDeserializer.java:218)
at com.inductiveautomation.factorypmi.application.model.WindowCache._deserializeWindow(WindowCache.java:278)
at com.inductiveautomation.factorypmi.application.model.WindowCache._loadWindow(WindowCache.java:218)
at com.inductiveautomation.factorypmi.application.model.WindowCache.openWindow(WindowCache.java:433)
at com.inductiveautomation.factorypmi.designer.search.WindowInstanceCache.getWindow(WindowInstanceCache.java:51)
at com.inductiveautomation.factorypmi.designer.search.CachedComponent.window(CachedComponent.java:45)
at com.inductiveautomation.factorypmi.designer.search.CachedComponent.component(CachedComponent.java:36)
at com.inductiveautomation.factorypmi.designer.search.searchobjects.AbstractActionHandlerSearchObject.adapter(AbstractActionHandlerSearchObject.java:41)
at com.inductiveautomation.factorypmi.designer.search.searchobjects.ScriptSearchObject.getText(ScriptSearchObject.java:23)
at com.inductiveautomation.ignition.designer.findreplace.SearchReplaceDialog$ResultsTableModel$Renderer.getTableCellRendererComponent(SearchReplaceDialog.java:868)
at javax.swing.JTable.prepareRenderer(Unknown Source)
at com.jidesoft.grid.JideTable.prepareRenderer(Unknown Source)
at com.jidesoft.grid.CellStyleTable.prepareRenderer(Unknown Source)
at com.jidesoft.grid.CellSpanTable.prepareRenderer(Unknown Source)
at com.jidesoft.plaf.basic.BasicJideTableUIDelegate.paintCell(Unknown Source)
at com.jidesoft.plaf.basic.BasicJideTableUIDelegate.a(Unknown Source)
at com.jidesoft.plaf.basic.BasicJideTableUIDelegate.paint(Unknown Source)
at com.jidesoft.plaf.basic.BasicCellSpanTableUIDelegate.paint(Unknown Source)
at com.jidesoft.plaf.basic.BasicCellSpanTableUI.paint(Unknown Source)
at javax.swing.plaf.ComponentUI.update(Unknown Source)
at javax.swing.JComponent.paintComponent(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintToOffscreen(Unknown Source)
at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(Unknown Source)
at javax.swing.RepaintManager$PaintManager.paint(Unknown Source)
at javax.swing.RepaintManager.paint(Unknown Source)
at javax.swing.JComponent.paintForceDoubleBuffered(Unknown Source)
at javax.swing.JViewport.blitDoubleBuffered(Unknown Source)
at javax.swing.JViewport.windowBlitPaint(Unknown Source)
at javax.swing.JViewport.setViewPosition(Unknown Source)
at javax.swing.plaf.basic.BasicScrollPaneUI$Handler.vsbStateChanged(Unknown Source)
at javax.swing.plaf.basic.BasicScrollPaneUI$Handler.stateChanged(Unknown Source)
at javax.swing.DefaultBoundedRangeModel.fireStateChanged(Unknown Source)
at javax.swing.DefaultBoundedRangeModel.setRangeProperties(Unknown Source)
at javax.swing.DefaultBoundedRangeModel.setValue(Unknown Source)
at javax.swing.JScrollBar.setValue(Unknown Source)
at javax.swing.plaf.basic.BasicScrollBarUI$TrackListener.setValueFrom(Unknown Source)
at javax.swing.plaf.basic.BasicScrollBarUI$TrackListener.mouseDragged(Unknown Source)
at java.awt.AWTEventMulticaster.mouseDragged(Unknown Source)
at java.awt.Component.processMouseMotionEvent(Unknown Source)
at javax.swing.JComponent.processMouseMotionEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$000(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$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)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.GeneratedMethodAccessor193.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.inductiveautomation.ignition.common.xmlserialization.deserialization.handlers.ObjectDeserializationHandler.endSubElement(ObjectDeserializationHandler.java:68)
… 84 more
Caused by: java.lang.NullPointerException
at com.inductiveautomation.factorypmi.application.components.PMIComboBox$DataSetComboBoxModel$CBSelection.matchesStringValue(PMIComboBox.java:676)
at com.inductiveautomation.factorypmi.application.components.PMIComboBox$DataSetComboBoxModel.findStringValue(PMIComboBox.java:549)
at com.inductiveautomation.factorypmi.application.components.PMIComboBox$DataSetComboBoxModel.find(PMIComboBox.java:575)
at com.inductiveautomation.factorypmi.application.components.PMIComboBox$DataSetComboBoxModel.setDataSet(PMIComboBox.java:525)
at com.inductiveautomation.factorypmi.application.components.PMIComboBox.setData(PMIComboBox.java:260)
… 88 more

Ignition v7.3.2 (b533)
Java: Sun Microsystems Inc. 1.6.0_29
[/quote]

I don’t think this has anything to do with find/replace: I’m guessing you have a window that you can’t open. Find it, and we should be able to rescue it by altering the underlying XML.

the problem was the window had a drop down box with query string of “select null as variety” for the data.

In FactoryPMI this was allowed, but in ignition doing so throws an error. I just change the logic and find/replace worked fine.

find/replace must go through and open all the windows and if a window has an error the message will be displayed during the search.

Yes, that’s right, find/replace must deserialize each window in order to search.