# Unable to open window due to corrupt object

**URL:** <https://forum.inductiveautomation.com/t/unable-to-open-window-due-to-corrupt-object/7853>\
**Category:** Ignition\
**Tags:** vision\
**Created:** [January 16, 2014, 9:18pm UTC](https://forum.inductiveautomation.com/t/unable-to-open-window-due-to-corrupt-object/7853 "2014-01-16T21:18:39Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![fadihindi](https://avatars.discourse-cdn.com/v4/letter/f/34f0e0/32.png) [@fadihindi](https://forum.inductiveautomation.com/u/fadihindi)\
**Post date:** [January 16, 2014, 9:18pm UTC](https://forum.inductiveautomation.com/t/unable-to-open-window-due-to-corrupt-object/7853/1 "2014-01-16T21:18:39Z")

</div>

I was modifying a window and added a Multistate Indicator. I modified the Styles dataset table and removed all of the default columns except 'state' and 'text' (animationindex, animation Duration, backgorund, border, foreground). I started receiveing the following error popup every time I attempted to modify this object. I tried deleting the object and received the same error. I closed the window and saved the project. Now when I attempt to open the window, I get this error and the window does not open. I am no longer able to modify this window because it will not open. Exporting the window and importing it does not clear the error. Any ideas for a workaround? Thanks.

Following is the error:

com.inductiveautomation.ignition.common.xmlserialization.SerializationException: Error invoking [PMIMultiStateIndicator]Multi-State Indicator.setStyles(Dataset [2R ⅹ 2C])  
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:663)  
at com.inductiveautomation.ignition.common.xmlserialization.deserialization.BinaryParser.readElement(BinaryParser.java:165)  
at com.inductiveautomation.ignition.common.xmlserialization.deserialization.BinaryParser.readElement(BinaryParser.java:157)  
at com.inductiveautomation.ignition.common.xmlserialization.deserialization.BinaryParser.readElement(BinaryParser.java:157)  
at com.inductiveautomation.ignition.common.xmlserialization.deserialization.BinaryParser.readElement(BinaryParser.java:157)  
at com.inductiveautomation.ignition.common.xmlserialization.deserialization.BinaryParser.readElement(BinaryParser.java:157)  
at com.inductiveautomation.ignition.common.xmlserialization.deserialization.BinaryParser.readElement(BinaryParser.java:157)  
at com.inductiveautomation.ignition.common.xmlserialization.deserialization.BinaryParser.readElement(BinaryParser.java:157)  
at com.inductiveautomation.ignition.common.xmlserialization.deserialization.BinaryParser.readElement(BinaryParser.java:157)  
at com.inductiveautomation.ignition.common.xmlserialization.deserialization.BinaryParser.readElement(BinaryParser.java:157)  
at com.inductiveautomation.ignition.common.xmlserialization.deserialization.BinaryParser.readElement(BinaryParser.java:157)  
at com.inductiveautomation.ignition.common.xmlserialization.deserialization.BinaryParser.readElement(BinaryParser.java:157)  
at com.inductiveautomation.ignition.common.xmlserialization.deserialization.BinaryParser.readElement(BinaryParser.java:157)  
at com.inductiveautomation.ignition.common.xmlserialization.deserialization.BinaryParser.readElement(BinaryParser.java:157)  
at com.inductiveautomation.ignition.common.xmlserialization.deserialization.BinaryParser.parse(BinaryParser.java:51)  
at com.inductiveautomation.ignition.common.xmlserialization.deserialization.XMLDeserializer.deserializeBinary(XMLDeserializer.java:313)  
at com.inductiveautomation.ignition.common.xmlserialization.deserialization.XMLDeserializer.deserialize(XMLDeserializer.java:233)  
at com.inductiveautomation.factorypmi.application.model.WindowCache.\_deserializeWindow(WindowCache.java:277)  
at com.inductiveautomation.factorypmi.application.model.WindowCache.\_loadWindow(WindowCache.java:216)  
at com.inductiveautomation.factorypmi.application.model.WindowCache.openWindow(WindowCache.java:435)  
at com.inductiveautomation.factorypmi.designer.workspace.WindowWorkspace$DesigntimeWindowOpener.openWindow(WindowWorkspace.java:3325)  
at com.inductiveautomation.factorypmi.designer.workspace.WindowWorkspace.openWindow(WindowWorkspace.java:1078)  
at com.inductiveautomation.factorypmi.designer.workspace.StartupPanel$ResourceThumbnail.onClick(StartupPanel.java:335)  
at com.inductiveautomation.factorypmi.designer.workspace.StartupPanel$ThumbnailButton$1.mouseClicked(StartupPanel.java:242)  
at java.awt.Component.processMouseEvent(Unknown Source)  
at javax.swing.JComponent.processMouseEvent(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$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.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)  
at java.awt.EventQueue$4.run(Unknown Source)  
at java.awt.EventQueue$4.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)  
Caused by: java.lang.reflect.InvocationTargetException  
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  
at sun.reflect.NativeMethodAccessorImpl.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)  
... 56 more  
Caused by: java.lang.ArrayIndexOutOfBoundsException: -1  
at com.inductiveautomation.ignition.common.BasicDataset.getValueAt(BasicDataset.java:114)  
at com.inductiveautomation.factorypmi.application.binding.StyleListener.register(StyleListener.java:218)  
at com.inductiveautomation.factorypmi.application.binding.StyleListener.propertyChange(StyleListener.java:105)  
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 com.inductiveautomation.factorypmi.application.components.PMILabel.setStyles(PMILabel.java:345)  
... 61 more

Ignition v7.6.4 (b2013112117)  
Java: Oracle Corporation 1.7.0\_51

---

<div class="post-metadata">

**Author:** ![anna](https://avatars.discourse-cdn.com/v4/letter/a/779978/32.png) [@anna](https://forum.inductiveautomation.com/u/anna)\
**Post date:** [May 6, 2014, 8:25pm UTC](https://forum.inductiveautomation.com/t/unable-to-open-window-due-to-corrupt-object/7853/2 "2014-05-06T20:25:30Z")

</div>

You can try pasting the window into a text file (it’s just xml), deleting the damaged component’s xml node and then pasting / re-importing the window back into the project. If you are not sure how to do that, you can attach the window export here.

---

<div class="post-metadata">

**Author:** ![Mathias\_Melling](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/mathias_melling/32/67682_2.png) [@Mathias\_Melling](https://forum.inductiveautomation.com/u/Mathias_Melling)\
**Post date:** [January 15, 2024, 8:45pm UTC](https://forum.inductiveautomation.com/t/unable-to-open-window-due-to-corrupt-object/7853/3 "2024-01-15T20:45:21Z")

</div>

I have the same issue with being unable to open a window because of a corrupt object. However in 2024 the window file doesn't seem to be an xml.  
Is there another way of deleting corrupt objects from a window?

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [January 15, 2024, 8:51pm UTC](https://forum.inductiveautomation.com/t/unable-to-open-window-due-to-corrupt-object/7853/4 "2024-01-15T20:51:56Z")

</div>

In the designer, with the window closed, use **shift** -right-click to gain access to the XML operations.

---

<div class="post-metadata">

**Author:** ![Mathias\_Melling](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/mathias_melling/32/67682_2.png) [@Mathias\_Melling](https://forum.inductiveautomation.com/u/Mathias_Melling)\
**Post date:** [January 15, 2024, 8:53pm UTC](https://forum.inductiveautomation.com/t/unable-to-open-window-due-to-corrupt-object/7853/5 "2024-01-15T20:53:14Z")

</div>

That still gives me a error message:  
 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/3/c/3c285ef032eebc53f246010ff4b675abe895a294.png)

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [January 15, 2024, 9:00pm UTC](https://forum.inductiveautomation.com/t/unable-to-open-window-due-to-corrupt-object/7853/6 "2024-01-15T21:00:53Z")

</div>

You have to edit the XML to get rid of the invalid object. Then paste it back **with the window still closed**.

Just copying and pasting the XML is not expected to fix anything.

---

<div class="post-metadata">

**Author:** ![Mathias\_Melling](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/mathias_melling/32/67682_2.png) [@Mathias\_Melling](https://forum.inductiveautomation.com/u/Mathias_Melling)\
**Post date:** [January 15, 2024, 9:02pm UTC](https://forum.inductiveautomation.com/t/unable-to-open-window-due-to-corrupt-object/7853/7 "2024-01-15T21:02:37Z")

</div>

I had to shift-right-click on the window in the project browser to get to the XML. I first tried to do shift-right-click on the window under "Vision Windows & Templates", which just tries to open the window.
