Policy Net plugin is broken after introducing namespaces

Bug #1350399 reported by Danil Sokolov
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Workcraft
Fix Committed
Medium
Danil Sokolov

Bug Description

The root Locality has an empty reference which prevents VisualLoclaity from referencing it. As a result, the following exception is thrown when deserialising a PolicyNet model:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
 at org.workcraft.util.Hierarchy.getTopParent(Hierarchy.java:87)
 at org.workcraft.dom.AbstractGroup.isSameModel(AbstractGroup.java:162)
 at org.workcraft.dom.AbstractGroup.reparent(AbstractGroup.java:149)
 at org.workcraft.dom.math.MathGroup.reparent(MathGroup.java:92)
 at org.workcraft.plugins.policy.VisualLocality.add(VisualLocality.java:29)
 at org.workcraft.plugins.policy.VisualLocality.add(VisualLocality.java:42)
 at org.workcraft.serialisation.xml.XMLDeserialisationManager.finaliseInstances(XMLDeserialisationManager.java:137)
 at org.workcraft.plugins.serialisation.XMLModelDeserialiser.deserialise(XMLModelDeserialiser.java:68)
 at org.workcraft.Framework.load(Framework.java:639)
 at org.workcraft.Framework.loadFile(Framework.java:527)
 at org.workcraft.workspace.Workspace.open(Workspace.java:109)
 at org.workcraft.gui.MainWindow.openWork(MainWindow.java:837)
 at org.workcraft.gui.MainWindow.openWork(MainWindow.java:826)
 at org.workcraft.gui.MainWindowActions$2.run(MainWindowActions.java:23)
 at org.workcraft.gui.MainWindow$1.actionPerformed(MainWindow.java:108)
 at org.workcraft.gui.actions.ActionMenuItem.fireActionPerformed(ActionMenuItem.java:58)
 at org.workcraft.gui.actions.ActionMenuItem.access$0(ActionMenuItem.java:55)
 at org.workcraft.gui.actions.ActionMenuItem$ActionForwarder.actionPerformed(ActionMenuItem.java:34)
 at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
 at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
 at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
 at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
 at javax.swing.AbstractButton.doClick(AbstractButton.java:376)
 at javax.swing.AbstractButton.doClick(AbstractButton.java:356)
 at javax.swing.plaf.basic.BasicMenuItemUI$Actions.actionPerformed(BasicMenuItemUI.java:802)
 at javax.swing.SwingUtilities.notifyAction(SwingUtilities.java:1661)
 at javax.swing.JComponent.processKeyBinding(JComponent.java:2870)
 at javax.swing.JMenuBar.processBindingForKeyStrokeRecursive(JMenuBar.java:689)
 at javax.swing.JMenuBar.processBindingForKeyStrokeRecursive(JMenuBar.java:697)
 at javax.swing.JMenuBar.processBindingForKeyStrokeRecursive(JMenuBar.java:697)
 at javax.swing.JMenuBar.processKeyBinding(JMenuBar.java:668)
 at javax.swing.KeyboardManager.fireBinding(KeyboardManager.java:306)
 at javax.swing.KeyboardManager.fireKeyboardAction(KeyboardManager.java:292)
 at javax.swing.JComponent.processKeyBindingsForAllComponents(JComponent.java:2962)
 at javax.swing.JComponent.processKeyBindings(JComponent.java:2954)
 at javax.swing.JComponent.processKeyEvent(JComponent.java:2833)
 at java.awt.Component.processEvent(Component.java:6282)
 at java.awt.Container.processEvent(Container.java:2229)
 at java.awt.Component.dispatchEventImpl(Component.java:4861)
 at java.awt.Container.dispatchEventImpl(Container.java:2287)
 at java.awt.Component.dispatchEvent(Component.java:4687)
 at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1895)
 at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:762)
 at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:1027)
 at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:899)
 at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:727)
 at java.awt.Component.dispatchEventImpl(Component.java:4731)
 at java.awt.Container.dispatchEventImpl(Container.java:2287)
 at java.awt.Window.dispatchEventImpl(Window.java:2719)
 at java.awt.Component.dispatchEvent(Component.java:4687)
 at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:729)
 at java.awt.EventQueue.access$200(EventQueue.java:103)
 at java.awt.EventQueue$3.run(EventQueue.java:688)
 at java.awt.EventQueue$3.run(EventQueue.java:686)
 at java.security.AccessController.doPrivileged(Native Method)
 at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
 at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
 at java.awt.EventQueue$4.run(EventQueue.java:702)
 at java.awt.EventQueue$4.run(EventQueue.java:700)
 at java.security.AccessController.doPrivileged(Native Method)
 at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
 at java.awt.EventQueue.dispatchEvent(EventQueue.java:699)
 at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
 at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
 at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
 at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
 at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
 at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)

Tags: page policy

Related branches

description: updated
Revision history for this message
Danil Sokolov (danilovesky) wrote :

Previously all MathGroups had references. Now the root MathGroup cannot be issued a reference as it does not have a parent (and therefore does not have a NamespaceProvider with NameManager). A solution is to give the root MathGroup some unique name, for example "/" that cannot be assigned by a user as it is not C-style.

Changed in workcraft:
status: Triaged → Fix Committed
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.