Alarm Priority Type Error

I am trying to update an alarm using system.tag.configure() and am having issues with the alarm priority type. My process is to get the current configuration using system.tag.getConfiguration() as a dictionary, edit the individual alarm dictionaries and write the new list of tag dictionaries back to the tag. I believe the issue is that there is no way for me to create an alarm priority type and alarm dictionary does not seem to handle an integer 0-4 or strings of low, medium, etc. I am able to successfully write back to the tag using integers for the alarm priority, but I get the below errors in the designer console when I try to view the alarms after the alarms are modified. The script I am using is also below. This works provided I comment out the lines where I modify the priority of the alarm dictionary.

Script

tagPath = event.source.parent.TagPath
tagName = tagPath.split('/')[-1]
basePath = tagPath.replace('/'+tagName,'')

currentConfig = system.tag.getConfiguration(tagPath)
alarmList = currentConfig[0]['alarms']
newAlarmList =
for alarm in alarmList:
name = alarm['name']
if name == 'HiHi Alarm':
alarm['enabled'] = event.source.parent.HiHiAlmEnable
alarm['setpointA'] = event.source.parent.HiHiAlmSP
alarm['timeOnDelaySeconds'] = event.source.parent.HiHiAlmDelay
alarm['priority'] = event.source.parent.HiHiAlmP
newAlarmList.append(alarm)
if name == 'LoLo Alarm':
alarm['enabled'] = event.source.parent.LoLoAlmEnable
alarm['setpointA'] = event.source.parent.LoLoAlmSP
alarm['timeOnDelaySeconds'] = event.source.parent.LoLoAlmDelay
alarm['priority'] = event.source.parent.LoLoAlmP
newAlarmList.append(alarm)
if name == 'Lo Alarm':
alarm['enabled'] = event.source.parent.LoAlmEnable
alarm['setpointA'] = event.source.parent.LoAlmSP
alarm['timeOnDelaySeconds'] = event.source.parent.LoAlmDelay
alarm['priority'] = event.source.parent.LoAlmDelay
newAlarmList.append(alarm)
if name == 'Hi Alarm':
alarm['enabled'] = event.source.parent.HiAlmEnable
alarm['setpointA'] = event.source.parent.HiAlmSP
alarm['timeOnDelaySeconds'] = event.source.parent.HiAlmDelay
alarm['priority'] = event.source.parent.HiAlmDelay
newAlarmList.append(alarm)
currentConfig[0]['alarms'] = newAlarmList
system.tag.configure(basePath,currentConfig)

Errors

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at com.inductiveautomation.ignition.designer.tags.editing.propeditors.alarms.AlarmListPanel$AlarmRenderer.getListCellRendererComponent(AlarmListPanel.java:324)
at java.desktop/javax.swing.plaf.basic.BasicListUI.updateLayoutState(Unknown Source)
at java.desktop/javax.swing.plaf.basic.BasicListUI.maybeUpdateLayoutState(Unknown Source)
at java.desktop/javax.swing.plaf.basic.BasicListUI$Handler.valueChanged(Unknown Source)
at java.desktop/javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown Source)
at java.desktop/javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown Source)
at java.desktop/javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown Source)
at java.desktop/javax.swing.DefaultListSelectionModel.changeSelection(Unknown Source)
at java.desktop/javax.swing.DefaultListSelectionModel.changeSelection(Unknown Source)
at java.desktop/javax.swing.DefaultListSelectionModel.removeSelectionIntervalImpl(Unknown Source)
at java.desktop/javax.swing.DefaultListSelectionModel.clearSelection(Unknown Source)
at com.inductiveautomation.ignition.designer.tags.editing.propeditors.alarms.AlarmListPanel.init(AlarmListPanel.java:159)
at com.inductiveautomation.ignition.designer.tags.editing.propeditors.alarms.AlarmPropertyCustomEditor.initialize(AlarmPropertyCustomEditor.java:87)
at com.inductiveautomation.ignition.designer.tags.editing.propeditors.alarms.AlarmPropertyCustomEditor.initialize(AlarmPropertyCustomEditor.java:22)
at com.inductiveautomation.ignition.designer.propertyeditor.config.ConfigPropertyEditPanel$EditorRenderer.customEditorOpened(ConfigPropertyEditPanel.java:419)
at com.inductiveautomation.ignition.designer.propertyeditor.config.table.ConfigPropertyEditorRenderer$CustomEditorAction.actionPerformed(ConfigPropertyEditorRenderer.java:827)
at com.inductiveautomation.ignition.designer.propertyeditor.config.table.ConfigPropertyEditorRenderer$CompositeEditor.buttonClicked(ConfigPropertyEditorRenderer.java:691)
at java.desktop/javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at java.desktop/javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at com.jidesoft.plaf.basic.BasicJideButtonListener.mouseReleased(Unknown Source)
at java.desktop/java.awt.Component.processMouseEvent(Unknown Source)
at java.desktop/javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.desktop/java.awt.Component.processEvent(Unknown Source)
at java.desktop/java.awt.Container.processEvent(Unknown Source)
at java.desktop/java.awt.Component.dispatchEventImpl(Unknown Source)
at java.desktop/java.awt.Container.dispatchEventImpl(Unknown Source)
at java.desktop/java.awt.Component.dispatchEvent(Unknown Source)
at java.desktop/javax.swing.plaf.basic.BasicTableUI$Handler.repostEvent(Unknown Source)
at java.desktop/javax.swing.plaf.basic.BasicTableUI$Handler.mouseReleased(Unknown Source)
at com.jidesoft.swing.DelegateMouseInputListener.mouseReleased(Unknown Source)
at java.desktop/java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
at java.desktop/java.awt.Component.processMouseEvent(Unknown Source)
at java.desktop/javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.desktop/java.awt.Component.processEvent(Unknown Source)
at java.desktop/java.awt.Container.processEvent(Unknown Source)
at java.desktop/java.awt.Component.dispatchEventImpl(Unknown Source)
at java.desktop/java.awt.Container.dispatchEventImpl(Unknown Source)
at java.desktop/java.awt.Component.dispatchEvent(Unknown Source)
at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.desktop/java.awt.Container.dispatchEventImpl(Unknown Source)
at java.desktop/java.awt.Window.dispatchEventImpl(Unknown Source)
at java.desktop/java.awt.Component.dispatchEvent(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.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.desktop/java.awt.EventQueue$5.run(Unknown Source)
at java.desktop/java.awt.EventQueue$5.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)
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at com.inductiveautomation.ignition.designer.tags.editing.propeditors.alarms.AlarmListPanel$AlarmRenderer.getListCellRendererComponent(AlarmListPanel.java:324)
at java.desktop/javax.swing.plaf.basic.BasicListUI.updateLayoutState(Unknown Source)
at java.desktop/javax.swing.plaf.basic.BasicListUI.maybeUpdateLayoutState(Unknown Source)
at java.desktop/javax.swing.plaf.basic.BasicListUI.getPreferredSize(Unknown Source)
at java.desktop/javax.swing.JComponent.getPreferredSize(Unknown Source)
at java.desktop/javax.swing.ScrollPaneLayout.layoutContainer(Unknown Source)
at java.desktop/java.awt.Container.layout(Unknown Source)
at java.desktop/java.awt.Container.doLayout(Unknown Source)
at java.desktop/java.awt.Container.validateTree(Unknown Source)
at java.desktop/java.awt.Container.validate(Unknown Source)
at java.desktop/javax.swing.RepaintManager$3.run(Unknown Source)
at java.desktop/javax.swing.RepaintManager$3.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/javax.swing.RepaintManager.validateInvalidComponents(Unknown Source)
at java.desktop/javax.swing.RepaintManager$ProcessingRunnable.run(Unknown Source)
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)

Once I get the errors in the console I am forced to delete the tag, restart the designer, and recreate the tag in order to correct the issue.

@mgross probably knows more about this, but try setting the priority to one of values of the enum com.inductiveautomation.ignition.common.alarming.AlarmPriority.

from com.inductiveautomation.ignition.common.alarming import AlarmPriority
...
alarm['priority'] = AlarmPriority.Low

That does solve this problem. Do you know if the plan is to integrate this into the system.tag.configure somehow or should we plan on importing this whenever we need to modify an alarm by scripting?

The function should also be able to set the priority if you use strings like “Low”, instead of “low”. Try something like this:

alarm['priority'] = "Low"

So using a string works provided I hardcode it into the script as in the example. If I use, for example, a drop down component and set alarm[‘priority’] = dropDown.selectedStringValue I still get null pointers when I try to view the new alarms in the designer and am forced to delete, restart the designer, and recreate the tag. The full error is below.

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
	at com.inductiveautomation.ignition.designer.tags.editing.propeditors.alarms.AlarmListPanel$AlarmRenderer.getListCellRendererComponent(AlarmListPanel.java:324)
	at java.desktop/javax.swing.plaf.basic.BasicListUI.updateLayoutState(Unknown Source)
	at java.desktop/javax.swing.plaf.basic.BasicListUI.maybeUpdateLayoutState(Unknown Source)
	at java.desktop/javax.swing.plaf.basic.BasicListUI.getPreferredSize(Unknown Source)
	at java.desktop/javax.swing.JComponent.getPreferredSize(Unknown Source)
	at java.desktop/javax.swing.ScrollPaneLayout.layoutContainer(Unknown Source)
	at java.desktop/java.awt.Container.layout(Unknown Source)
	at java.desktop/java.awt.Container.doLayout(Unknown Source)
	at java.desktop/java.awt.Container.validateTree(Unknown Source)
	at java.desktop/java.awt.Container.validate(Unknown Source)
	at java.desktop/javax.swing.RepaintManager$3.run(Unknown Source)
	at java.desktop/javax.swing.RepaintManager$3.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/javax.swing.RepaintManager.validateInvalidComponents(Unknown Source)
	at java.desktop/javax.swing.RepaintManager$ProcessingRunnable.run(Unknown Source)
	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)
Problem invoking method public void com.inductiveautomation.ignition.client.util.gui.SlidingPane$Layout.setAnim(float) in object com.inductiveautomation.ignition.client.util.gui.SlidingPane$Layout@3b3ae1c0 in setValuejava.lang.reflect.InvocationTargetException
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
	at com.inductiveautomation.ignition.designer.tags.editing.propeditors.alarms.AlarmListPanel$AlarmRenderer.getListCellRendererComponent(AlarmListPanel.java:324)
	at java.desktop/javax.swing.plaf.basic.BasicListUI.updateLayoutState(Unknown Source)
	at java.desktop/javax.swing.plaf.basic.BasicListUI.maybeUpdateLayoutState(Unknown Source)
	at java.desktop/javax.swing.plaf.basic.BasicListUI.paintImpl(Unknown Source)
	at java.desktop/javax.swing.plaf.basic.BasicListUI.paint(Unknown Source)
	at java.desktop/javax.swing.plaf.synth.SynthListUI.update(Unknown Source)
	at java.desktop/javax.swing.JComponent.paintComponent(Unknown Source)
	at java.desktop/javax.swing.JComponent.paint(Unknown Source)
	at java.desktop/javax.swing.JComponent.paintChildren(Unknown Source)
	at java.desktop/javax.swing.JComponent.paint(Unknown Source)
	at java.desktop/javax.swing.JViewport.paint(Unknown Source)
	at java.desktop/javax.swing.JComponent.paintChildren(Unknown Source)
	at java.desktop/javax.swing.JComponent.paint(Unknown Source)
	at java.desktop/javax.swing.JComponent.paintChildren(Unknown Source)
	at java.desktop/javax.swing.JComponent.paint(Unknown Source)
	at java.desktop/javax.swing.JComponent.paintChildren(Unknown Source)
	at java.desktop/javax.swing.JComponent.paint(Unknown Source)
	at java.desktop/javax.swing.JComponent.paintChildren(Unknown Source)
	at java.desktop/javax.swing.JSplitPane.paintChildren(Unknown Source)
	at java.desktop/javax.swing.JComponent.paint(Unknown Source)
	at java.desktop/javax.swing.JComponent.paintChildren(Unknown Source)
	at java.desktop/javax.swing.JComponent.paint(Unknown Source)
	at java.desktop/javax.swing.JComponent.paintChildren(Unknown Source)
	at java.desktop/javax.swing.JComponent.paint(Unknown Source)
	at java.desktop/javax.swing.JComponent.paintChildren(Unknown Source)
	at java.desktop/javax.swing.JComponent.paint(Unknown Source)
	at java.desktop/javax.swing.JComponent.paintChildren(Unknown Source)
	at java.desktop/javax.swing.JComponent.paint(Unknown Source)
	at java.desktop/javax.swing.JComponent.paintChildren(Unknown Source)
	at java.desktop/javax.swing.JComponent.paint(Unknown Source)
	at java.desktop/javax.swing.JComponent.paintToOffscreen(Unknown Source)
	at java.desktop/javax.swing.RepaintManager$PaintManager.paintDoubleBufferedImpl(Unknown Source)
	at java.desktop/javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(Unknown Source)
	at java.desktop/javax.swing.RepaintManager$PaintManager.paint(Unknown Source)
	at java.desktop/javax.swing.RepaintManager.paint(Unknown Source)
	at java.desktop/javax.swing.JComponent._paintImmediately(Unknown Source)
	at java.desktop/javax.swing.JComponent.paintImmediately(Unknown Source)
	at java.desktop/javax.swing.RepaintManager$4.run(Unknown Source)
	at java.desktop/javax.swing.RepaintManager$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/javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
	at java.desktop/javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
	at java.desktop/javax.swing.RepaintManager.prePaintDirtyRegions(Unknown Source)
	at java.desktop/javax.swing.RepaintManager$ProcessingRunnable.run(Unknown Source)
	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)
Problem invoking method public void com.inductiveautomation.ignition.client.util.gui.SlidingPane$Layout.setAnim(float) in object com.inductiveautomation.ignition.client.util.gui.SlidingPane$Layout@3b3ae1c0 in setValuejava.lang.reflect.InvocationTargetException
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
	at com.inductiveautomation.ignition.designer.tags.editing.propeditors.alarms.AlarmListPanel$AlarmRenderer.getListCellRendererComponent(AlarmListPanel.java:324)
	at java.desktop/javax.swing.plaf.basic.BasicListUI.updateLayoutState(Unknown Source)
	at java.desktop/javax.swing.plaf.basic.BasicListUI.maybeUpdateLayoutState(Unknown Source)
	at java.desktop/javax.swing.plaf.basic.BasicListUI.paintImpl(Unknown Source)
	at java.desktop/javax.swing.plaf.basic.BasicListUI.paint(Unknown Source)
	at java.desktop/javax.swing.plaf.synth.SynthListUI.update(Unknown Source)
	at java.desktop/javax.swing.JComponent.paintComponent(Unknown Source)
	at java.desktop/javax.swing.JComponent.paint(Unknown Source)
	at java.desktop/javax.swing.JComponent.paintChildren(Unknown Source)
	at java.desktop/javax.swing.JComponent.paint(Unknown Source)
	at java.desktop/javax.swing.JViewport.paint(Unknown Source)
	at java.desktop/javax.swing.JComponent.paintChildren(Unknown Source)
	at java.desktop/javax.swing.JComponent.paint(Unknown Source)
	at java.desktop/javax.swing.JComponent.paintChildren(Unknown Source)
	at java.desktop/javax.swing.JComponent.paint(Unknown Source)
	at java.desktop/javax.swing.JComponent.paintChildren(Unknown Source)
	at java.desktop/javax.swing.JComponent.paint(Unknown Source)
	at java.desktop/javax.swing.JComponent.paintChildren(Unknown Source)
	at java.desktop/javax.swing.JSplitPane.paintChildren(Unknown Source)
	at java.desktop/javax.swing.JComponent.paint(Unknown Source)
	at java.desktop/javax.swing.JComponent.paintChildren(Unknown Source)
	at java.desktop/javax.swing.JComponent.paint(Unknown Source)
	at java.desktop/javax.swing.JComponent.paintChildren(Unknown Source)
	at java.desktop/javax.swing.JComponent.paint(Unknown Source)
	at java.desktop/javax.swing.JComponent.paintChildren(Unknown Source)
	at java.desktop/javax.swing.JComponent.paint(Unknown Source)
	at java.desktop/javax.swing.JComponent.paintChildren(Unknown Source)
	at java.desktop/javax.swing.JComponent.paint(Unknown Source)
	at java.desktop/javax.swing.JComponent.paintChildren(Unknown Source)
	at java.desktop/javax.swing.JComponent.paint(Unknown Source)
	at java.desktop/javax.swing.JComponent.paintToOffscreen(Unknown Source)
	at java.desktop/javax.swing.RepaintManager$PaintManager.paintDoubleBufferedImpl(Unknown Source)
	at java.desktop/javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(Unknown Source)
	at java.desktop/javax.swing.RepaintManager$PaintManager.paint(Unknown Source)
	at java.desktop/javax.swing.RepaintManager.paint(Unknown Source)
	at java.desktop/javax.swing.JComponent._paintImmediately(Unknown Source)
	at java.desktop/javax.swing.JComponent.paintImmediately(Unknown Source)
	at java.desktop/javax.swing.RepaintManager$4.run(Unknown Source)
	at java.desktop/javax.swing.RepaintManager$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/javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
	at java.desktop/javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
	at java.desktop/javax.swing.RepaintManager.prePaintDirtyRegions(Unknown Source)
	at java.desktop/javax.swing.RepaintManager$ProcessingRunnable.run(Unknown Source)
	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)
Problem invoking method public void com.inductiveautomation.ignition.client.util.gui.SlidingPane$Layout.setAnim(float) in object com.inductiveautomation.ignition.client.util.gui.SlidingPane$Layout@3b3ae1c0 in setValuejava.lang.reflect.InvocationTargetException
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
	at com.inductiveautomation.ignition.designer.tags.editing.propeditors.alarms.AlarmListPanel$AlarmRenderer.getListCellRendererComponent(AlarmListPanel.java:324)
	at java.desktop/javax.swing.plaf.basic.BasicListUI.updateLayoutState(Unknown Source)
	at java.desktop/javax.swing.plaf.basic.BasicListUI.maybeUpdateLayoutState(Unknown Source)
	at java.desktop/javax.swing.plaf.basic.BasicListUI.paintImpl(Unknown Source)
	at java.desktop/javax.swing.plaf.basic.BasicListUI.paint(Unknown Source)
	at java.desktop/javax.swing.plaf.synth.SynthListUI.update(Unknown Source)
	at java.desktop/javax.swing.JComponent.paintComponent(Unknown Source)
	at java.desktop/javax.swing.JComponent.paint(Unknown Source)
	at java.desktop/javax.swing.JComponent.paintChildren(Unknown Source)
	at java.desktop/javax.swing.JComponent.paint(Unknown Source)
	at java.desktop/javax.swing.JViewport.paint(Unknown Source)
	at java.desktop/javax.swing.JComponent.paintChildren(Unknown Source)
	at java.desktop/javax.swing.JComponent.paint(Unknown Source)
	at java.desktop/javax.swing.JComponent.paintChildren(Unknown Source)
	at java.desktop/javax.swing.JComponent.paint(Unknown Source)
	at java.desktop/javax.swing.JComponent.paintChildren(Unknown Source)
	at java.desktop/javax.swing.JComponent.paint(Unknown Source)
	at java.desktop/javax.swing.JComponent.paintChildren(Unknown Source)
	at java.desktop/javax.swing.JSplitPane.paintChildren(Unknown Source)
	at java.desktop/javax.swing.JComponent.paint(Unknown Source)
	at java.desktop/javax.swing.JComponent.paintChildren(Unknown Source)
	at java.desktop/javax.swing.JComponent.paint(Unknown Source)
	at java.desktop/javax.swing.JComponent.paintChildren(Unknown Source)
	at java.desktop/javax.swing.JComponent.paint(Unknown Source)
	at java.desktop/javax.swing.JComponent.paintChildren(Unknown Source)
	at java.desktop/javax.swing.JComponent.paint(Unknown Source)
	at java.desktop/javax.swing.JComponent.paintChildren(Unknown Source)
	at java.desktop/javax.swing.JComponent.paint(Unknown Source)
	at java.desktop/javax.swing.JComponent.paintChildren(Unknown Source)
	at java.desktop/javax.swing.JComponent.paint(Unknown Source)
	at java.desktop/javax.swing.JComponent.paintToOffscreen(Unknown Source)
	at java.desktop/javax.swing.RepaintManager$PaintManager.paintDoubleBufferedImpl(Unknown Source)
	at java.desktop/javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(Unknown Source)
	at java.desktop/javax.swing.RepaintManager$PaintManager.paint(Unknown Source)
	at java.desktop/javax.swing.RepaintManager.paint(Unknown Source)
	at java.desktop/javax.swing.JComponent._paintImmediately(Unknown Source)
	at java.desktop/javax.swing.JComponent.paintImmediately(Unknown Source)
	at java.desktop/javax.swing.RepaintManager$4.run(Unknown Source)
	at java.desktop/javax.swing.RepaintManager$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/javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
	at java.desktop/javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
	at java.desktop/javax.swing.RepaintManager.prePaintDirtyRegions(Unknown Source)
	at java.desktop/javax.swing.RepaintManager$ProcessingRunnable.run(Unknown Source)
	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)
Problem invoking method public void com.inductiveautomation.ignition.client.util.gui.SlidingPane$Layout.setAnim(float) in object com.inductiveautomation.ignition.client.util.gui.SlidingPane$Layout@3b3ae1c0 in setValuejava.lang.reflect.InvocationTargetException
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
	at com.inductiveautomation.ignition.designer.tags.editing.propeditors.alarms.AlarmListPanel$AlarmRenderer.getListCellRendererComponent(AlarmListPanel.java:324)
	at java.desktop/javax.swing.plaf.basic.BasicListUI.updateLayoutState(Unknown Source)
	at java.desktop/javax.swing.plaf.basic.BasicListUI.maybeUpdateLayoutState(Unknown Source)
	at java.desktop/javax.swing.plaf.basic.BasicListUI.getPreferredSize(Unknown Source)
	at java.desktop/javax.swing.JComponent.getPreferredSize(Unknown Source)
	at java.desktop/javax.swing.JList.getPreferredScrollableViewportSize(Unknown Source)
	at java.desktop/javax.swing.ViewportLayout.preferredLayoutSize(Unknown Source)
	at java.desktop/java.awt.Container.preferredSize(Unknown Source)
	at java.desktop/java.awt.Container.getPreferredSize(Unknown Source)
	at java.desktop/javax.swing.JComponent.getPreferredSize(Unknown Source)
	at java.desktop/javax.swing.ScrollPaneLayout.preferredLayoutSize(Unknown Source)
	at java.desktop/java.awt.Container.preferredSize(Unknown Source)
	at java.desktop/java.awt.Container.getPreferredSize(Unknown Source)
	at java.desktop/javax.swing.JComponent.getPreferredSize(Unknown Source)
	at java.desktop/java.awt.BorderLayout.preferredLayoutSize(Unknown Source)
	at java.desktop/java.awt.Container.preferredSize(Unknown Source)
	at java.desktop/java.awt.Container.getPreferredSize(Unknown Source)
	at java.desktop/javax.swing.JComponent.getPreferredSize(Unknown Source)
	at java.desktop/java.awt.BorderLayout.preferredLayoutSize(Unknown Source)
	at java.desktop/java.awt.Container.preferredSize(Unknown Source)
	at java.desktop/java.awt.Container.getPreferredSize(Unknown Source)
	at java.desktop/javax.swing.JComponent.getPreferredSize(Unknown Source)
	at java.desktop/javax.swing.plaf.basic.BasicSplitPaneUI$BasicHorizontalLayoutManager.preferredLayoutSize(Unknown Source)
	at java.desktop/javax.swing.plaf.basic.BasicSplitPaneUI.getPreferredSize(Unknown Source)
	at java.desktop/javax.swing.JComponent.getPreferredSize(Unknown Source)
	at net.miginfocom.swing.SwingComponentWrapper.getMinimumWidth(Unknown Source)
	at net.miginfocom.layout.Grid$CompWrap.getSize(Unknown Source)
	at net.miginfocom.layout.Grid$CompWrap.<init>(Unknown Source)
	at net.miginfocom.layout.Grid$CompWrap.<init>(Unknown Source)
	at net.miginfocom.layout.Grid.<init>(Unknown Source)
	at net.miginfocom.swing.MigLayout.checkCache(Unknown Source)
	at net.miginfocom.swing.MigLayout.getSizeImpl(Unknown Source)
	at net.miginfocom.swing.MigLayout.preferredLayoutSize(Unknown Source)
	at java.desktop/java.awt.Container.preferredSize(Unknown Source)
	at java.desktop/java.awt.Container.getPreferredSize(Unknown Source)
	at java.desktop/javax.swing.JComponent.getPreferredSize(Unknown Source)
	at net.miginfocom.swing.SwingComponentWrapper.getMinimumWidth(Unknown Source)
	at net.miginfocom.layout.Grid$CompWrap.getSize(Unknown Source)
	at net.miginfocom.layout.Grid$CompWrap.<init>(Unknown Source)
	at net.miginfocom.layout.Grid$CompWrap.<init>(Unknown Source)
	at net.miginfocom.layout.Grid.<init>(Unknown Source)
	at net.miginfocom.swing.MigLayout.checkCache(Unknown Source)
	at net.miginfocom.swing.MigLayout.getSizeImpl(Unknown Source)
	at net.miginfocom.swing.MigLayout.preferredLayoutSize(Unknown Source)
	at java.desktop/java.awt.Container.preferredSize(Unknown Source)
	at java.desktop/java.awt.Container.getPreferredSize(Unknown Source)
	at java.desktop/javax.swing.JComponent.getPreferredSize(Unknown Source)
	at java.desktop/java.awt.BorderLayout.preferredLayoutSize(Unknown Source)
	at java.desktop/java.awt.Container.preferredSize(Unknown Source)
	at java.desktop/java.awt.Container.getPreferredSize(Unknown Source)
	at java.desktop/javax.swing.JComponent.getPreferredSize(Unknown Source)
	at net.miginfocom.swing.SwingComponentWrapper.getMinimumWidth(Unknown Source)
	at net.miginfocom.layout.Grid$CompWrap.getSize(Unknown Source)
	at net.miginfocom.layout.Grid$CompWrap.<init>(Unknown Source)
	at net.miginfocom.layout.Grid$CompWrap.<init>(Unknown Source)
	at net.miginfocom.layout.Grid.<init>(Unknown Source)
	at net.miginfocom.swing.MigLayout.checkCache(Unknown Source)
	at net.miginfocom.swing.MigLayout.layoutContainer(Unknown Source)
	at java.desktop/java.awt.Container.layout(Unknown Source)
	at java.desktop/java.awt.Container.doLayout(Unknown Source)
	at java.desktop/java.awt.Container.validateTree(Unknown Source)
	at java.desktop/java.awt.Container.validateTree(Unknown Source)
	at java.desktop/java.awt.Container.validateTree(Unknown Source)
	at java.desktop/java.awt.Container.validateTree(Unknown Source)
	at java.desktop/java.awt.Container.validateTree(Unknown Source)
	at java.desktop/java.awt.Container.validateTree(Unknown Source)
	at java.desktop/java.awt.Container.validateTree(Unknown Source)
	at java.desktop/java.awt.Container.validate(Unknown Source)
	at java.desktop/javax.swing.RepaintManager$3.run(Unknown Source)
	at java.desktop/javax.swing.RepaintManager$3.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/javax.swing.RepaintManager.validateInvalidComponents(Unknown Source)
	at java.desktop/javax.swing.RepaintManager$ProcessingRunnable.run(Unknown Source)
	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)
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
	at com.inductiveautomation.ignition.designer.tags.editing.propeditors.alarms.AlarmListPanel$AlarmRenderer.getListCellRendererComponent(AlarmListPanel.java:324)
	at java.desktop/javax.swing.plaf.basic.BasicListUI.updateLayoutState(Unknown Source)
	at java.desktop/javax.swing.plaf.basic.BasicListUI.maybeUpdateLayoutState(Unknown Source)
	at java.desktop/javax.swing.plaf.basic.BasicListUI.paintImpl(Unknown Source)
	at java.desktop/javax.swing.plaf.basic.BasicListUI.paint(Unknown Source)
	at java.desktop/javax.swing.plaf.synth.SynthListUI.update(Unknown Source)
	at java.desktop/javax.swing.JComponent.paintComponent(Unknown Source)
	at java.desktop/javax.swing.JComponent.paint(Unknown Source)
	at java.desktop/javax.swing.JComponent.paintChildren(Unknown Source)
	at java.desktop/javax.swing.JComponent.paint(Unknown Source)
	at java.desktop/javax.swing.JViewport.paint(Unknown Source)
	at java.desktop/javax.swing.JComponent.paintChildren(Unknown Source)
	at java.desktop/javax.swing.JComponent.paint(Unknown Source)
	at java.desktop/javax.swing.JComponent.paintChildren(Unknown Source)
	at java.desktop/javax.swing.JComponent.paint(Unknown Source)
	at java.desktop/javax.swing.JComponent.paintChildren(Unknown Source)
	at java.desktop/javax.swing.JComponent.paint(Unknown Source)
	at java.desktop/javax.swing.JComponent.paintChildren(Unknown Source)
	at java.desktop/javax.swing.JSplitPane.paintChildren(Unknown Source)
	at java.desktop/javax.swing.JComponent.paint(Unknown Source)
	at java.desktop/javax.swing.JComponent.paintChildren(Unknown Source)
	at java.desktop/javax.swing.JComponent.paint(Unknown Source)
	at java.desktop/javax.swing.JComponent.paintChildren(Unknown Source)
	at java.desktop/javax.swing.JComponent.paint(Unknown Source)
	at java.desktop/javax.swing.JComponent.paintChildren(Unknown Source)
	at java.desktop/javax.swing.JComponent.paint(Unknown Source)
	at java.desktop/javax.swing.JComponent.paintChildren(Unknown Source)
	at java.desktop/javax.swing.JComponent.paint(Unknown Source)
	at java.desktop/javax.swing.JComponent.paintChildren(Unknown Source)
	at java.desktop/javax.swing.JComponent.paint(Unknown Source)
	at java.desktop/javax.swing.JComponent.paintToOffscreen(Unknown Source)
	at java.desktop/javax.swing.RepaintManager$PaintManager.paintDoubleBufferedImpl(Unknown Source)
	at java.desktop/javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(Unknown Source)
	at java.desktop/javax.swing.RepaintManager$PaintManager.paint(Unknown Source)
	at java.desktop/javax.swing.RepaintManager.paint(Unknown Source)
	at java.desktop/javax.swing.JComponent._paintImmediately(Unknown Source)
	at java.desktop/javax.swing.JComponent.paintImmediately(Unknown Source)
	at java.desktop/javax.swing.RepaintManager$4.run(Unknown Source)
	at java.desktop/javax.swing.RepaintManager$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/javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
	at java.desktop/javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
	at java.desktop/javax.swing.RepaintManager.prePaintDirtyRegions(Unknown Source)
	at java.desktop/javax.swing.RepaintManager$ProcessingRunnable.run(Unknown Source)
	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)

Nevermind, apparently the string values on the drop down component I was using have spaces in front of the Enums for the alarms. This works provided I remove the spaces from the strings.

1 Like