Error when opening page with Box and Whisker Chart

Every time I attempt to open this page the first time that has a box and whisker chart on it, I get the following error that I cannot figure out (works fine every time after the first attempt):

com.inductiveautomation.ignition.common.xmlserialization.SerializationException: Error invoking [PMIBoxWhiskerChart]com.inductiveautomation.factorypmi.application.components.PMIBoxWhiskerChart[Box and Whisker Chart,25,106,1600x720,invalid,layout=java.awt.FlowLayout,alignmentX=0.0,alignmentY=0.0,border=javax.swing.plaf.synth.SynthBorder@494236ef,flags=9,maximumSize=,minimumSize=,preferredSize=java.awt.Dimension[width=321,height=295]].setSeriesColors([Ljava.awt.Color;@501033a5)
at com.inductiveautomation.ignition.common.xmlserialization.deserialization.handlers.ObjectDeserializationHandler.endSubElement(ObjectDeserializationHandler.java:82)
at com.inductiveautomation.factorypmi.application.xmlserialization.ComponentDeserializationHandler.endSubElement(ComponentDeserializationHandler.java:102)
at com.inductiveautomation.ignition.common.xmlserialization.deserialization.XMLDeserializer$ParseContext.onElementEnd(XMLDeserializer.java:923)
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.parse(BinaryParser.java:51)
at com.inductiveautomation.ignition.common.xmlserialization.deserialization.XMLDeserializer.deserializeBinary(XMLDeserializer.java:358)
at com.inductiveautomation.ignition.common.xmlserialization.deserialization.XMLDeserializer.deserialize(XMLDeserializer.java:268)
at com.inductiveautomation.factorypmi.application.model.WindowCache._deserializeWindow(WindowCache.java:381)
at com.inductiveautomation.factorypmi.application.model.WindowCache._loadWindow(WindowCache.java:324)
at com.inductiveautomation.factorypmi.application.model.WindowCache.openWindow(WindowCache.java:298)
at com.inductiveautomation.factorypmi.application.VisionDesktop$RuntimeWindowOpener.openWindow(VisionDesktop.java:489)
at com.inductiveautomation.factorypmi.application.VisionDesktop.openWindow(VisionDesktop.java:192)
at com.inductiveautomation.factorypmi.application.script.builtin.SecurityUtilities._tempReOpen(SecurityUtilities.java:178)
at com.inductiveautomation.factorypmi.application.script.builtin.SecurityUtilities._tempReOpen(SecurityUtilities.java:157)
at com.inductiveautomation.factorypmi.application.runtime.UpdateProjectPane.uninstall(UpdateProjectPane.java:80)
at com.inductiveautomation.factorypmi.application.runtime.UpdateProjectPane$1.stepsFinished(UpdateProjectPane.java:69)
at java.desktop/java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.desktop/java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.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.ignition.common.xmlserialization.deserialization.handlers.ObjectDeserializationHandler.endSubElement(ObjectDeserializationHandler.java:69)
... 38 more
Caused by: java.lang.IllegalArgumentException: Range(double, double): require lower (Infinity) <= upper (-Infinity).
at org.jfree.data.Range.(Range.java:90)
at org.jfree.data.statistics.DefaultBoxAndWhiskerCategoryDataset.getRangeBounds(DefaultBoxAndWhiskerCategoryDataset.java:634)
at org.jfree.data.general.DatasetUtilities.findRangeBounds(DatasetUtilities.java:742)
at org.jfree.data.general.DatasetUtilities.findRangeBounds(DatasetUtilities.java:722)
at org.jfree.chart.renderer.category.AbstractCategoryItemRenderer.findRangeBounds(AbstractCategoryItemRenderer.java:675)
at org.jfree.chart.plot.CategoryPlot.getDataRange(CategoryPlot.java:3806)
at org.jfree.chart.axis.NumberAxis.autoAdjustRange(NumberAxis.java:426)
at org.jfree.chart.axis.NumberAxis.configure(NumberAxis.java:409)
at org.jfree.chart.axis.Axis.setPlot(Axis.java:838)
at org.jfree.chart.plot.CategoryPlot.(CategoryPlot.java:535)
at com.inductiveautomation.factorypmi.application.components.PMIBoxWhiskerChart.createBoxWhiskerChart(PMIBoxWhiskerChart.java:264)
at com.inductiveautomation.factorypmi.application.components.PMIBoxWhiskerChart.updateChart(PMIBoxWhiskerChart.java:107)
at com.inductiveautomation.factorypmi.application.components.PMIBoxWhiskerChart.setSeriesColors(PMIBoxWhiskerChart.java:371)
... 43 more

Ignition v8.1.19 (b2022072711)
Java: Azul Systems, Inc. 11.0.15

How is your data being populated? It looks like the lower bound of your range axis is somehow exceeding the upper bound.

1 Like

Thanks for the quick response. I couldn't figure it out because the data was being pulled from a query that was perfectly fine. I deleted everything and remade it the exact same way and that fixed the issue somehow. Maybe I had a small error somewhere or it was just stuck in error somehow.

1 Like