FPMI Serialization Error

I just started having this problem today. Some of my buttons, instead of going to their respective screens, will come up with a serialization error. Here is the text from the error message.

com.inductiveautomation.factorypmi.common.xmlserialization.SerializationException: Error deserializing element "<o:c m=“setMainColor” s=“1;clr” " on line 2390
at com.inductiveautomation.factorypmi.common.xmlserialization.deserialization.XMLDeserializer$Parser.wrapException(XMLDeserializer.java:353)
at com.inductiveautomation.factorypmi.common.xmlserialization.deserialization.XMLDeserializer$Parser.startElement(XMLDeserializer.java:433)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(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.factorypmi.common.xmlserialization.deserialization.XMLDeserializer.deserialize(XMLDeserializer.java:142)
at com.inductiveautomation.factorypmi.application.model.WindowController.deserializeWindow(WindowController.java:619)
at com.inductiveautomation.factorypmi.application.model.WindowController._loadWindow(WindowController.java:324)
at com.inductiveautomation.factorypmi.application.model.WindowController.getWindow(WindowController.java:368)
at com.inductiveautomation.factorypmi.application.FPMIApp.openWindow(FPMIApp.java:836)
at com.inductiveautomation.factorypmi.application.script.builtin.NavUtilities$5.run(NavUtilities.java:317)
at com.inductiveautomation.factorypmi.application.script.builtin.WindowUtilities.doGUIAction(WindowUtilities.java:463)
at com.inductiveautomation.factorypmi.application.script.builtin.NavUtilities.openWindow(NavUtilities.java:267)
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 org.python.core.PyReflectedFunction.call(PyReflectedFunction.java)
at org.python.core.PyReflectedFunction.call(PyReflectedFunction.java)
at org.python.core.PyObject.call(PyObject.java)
at org.python.core.PyObject.invoke(PyObject.java)
at org.python.pycode._pyx3.f$0(event:actionPerformed:13)
at org.python.pycode._pyx3.call_function(event:actionPerformed)
at org.python.core.PyTableCode.call(PyTableCode.java)
at org.python.core.PyCode.call(PyCode.java)
at org.python.core.Py.runCode(Py.java)
at com.inductiveautomation.factorypmi.application.script.ScriptManager.runCode(ScriptManager.java:245)
at com.inductiveautomation.factorypmi.application.binding.action.ActionAdapter.runActions(ActionAdapter.java:145)
at com.inductiveautomation.factorypmi.application.binding.action.ActionAdapter.invoke(ActionAdapter.java:287)
at com.inductiveautomation.factorypmi.application.binding.action.RelayInvocationHandler.invoke(RelayInvocationHandler.java:57)
at $Proxy5.actionPerformed(Unknown Source)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
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$000(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.NullPointerException
at com.inductiveautomation.factorypmi.common.utils.gui.PanelTitledBorder.(PanelTitledBorder.java:57)
at com.inductiveautomation.factorypmi.common.utils.gui.PanelTitledBorder.(PanelTitledBorder.java:49)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at java.lang.Class.newInstance0(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at com.inductiveautomation.factorypmi.common.xmlserialization.deserialization.handlers.ObjectDeserializationHandler.startSubElement(ObjectDeserializationHandler.java:99)
at com.inductiveautomation.factorypmi.common.xmlserialization.deserialization.XMLDeserializer$Parser.startElement(XMLDeserializer.java:430)
… 72 more
FactoryPMI v3.3.1 (build 2549)
Java: Oracle Corporation 1.7.0_05

I do not know what is causing the problem. I also dont know if it is related to the fact that I can not seem to open the FPMI designer.

Any ideas, thoughts or suggestions greatly appreciated.

Thanks.

Java 7 is likely your problem. FPMI, and even earlier versions of Ignition, have issues with serialization on Java 7. Revert to Java 6 and report back :slight_smile:

The JNLP file specifies which java version to run with.

By default (with my installation at least) on the system config page it specified the java versions as “1.6+;1.5+”.

Changing this to “1.6;1.5+” fixed the JNLP and made FPMI run under java 6 instead of java 7 and made me look like a genius.

Hopefully this will help others…