To reproduce:
- Create a Digital Circuit work with a single function component
- Assign a basic Set function to its output, e.g z0=a
- Connect the output pin to the input pin, thus forming a self-loop
- Select everything (Ctrl-A) and create a page (Alt-G)
Alternatively you can perform the last step using the attached test.work file.
Expected behaviour:
- A page with the function component and a self-loop connection should be created
Observed behaviour:
- An empty page is created and the following exception is thrown:
Exception in thread "AWT-EventQueue-0" java.lang.RuntimeException: Failed to remove a node frome a group because it is not a child of that group (MathConnection 1596879151 (org.workcraft.plugins.circuit.FunctionContact@649e4dc0, org.workcraft.plugins.circuit.FunctionContact@306870c), parent is org.workcraft.plugins.circuit.FunctionComponent@3a18cecd, expected org.workcraft.dom.math.MathGroup@7e5284e9)
at org.workcraft.dom.AbstractGroup.removeInternal(AbstractGroup.java:90)
at org.workcraft.dom.AbstractGroup.reparent(AbstractGroup.java:147)
at org.workcraft.dom.math.MathGroup.reparent(MathGroup.java:92)
at org.workcraft.dom.math.AbstractMathModel.setNamespaceRecursively(AbstractMathModel.java:73)
at org.workcraft.dom.math.AbstractMathModel.reparent(AbstractMathModel.java:102)
at org.workcraft.dom.visual.AbstractVisualModel.reparent(AbstractVisualModel.java:590)
at org.workcraft.dom.visual.AbstractVisualModel.groupPageSelection(AbstractVisualModel.java:447)
at org.workcraft.gui.graph.tools.SelectionTool.selectionPageGroup(SelectionTool.java:748)
at org.workcraft.gui.graph.tools.SelectionTool.keyPressed(SelectionTool.java:485)
at org.workcraft.gui.ToolboxPanel.keyPressed(ToolboxPanel.java:264)
at org.workcraft.gui.graph.GraphEditorPanelKeyListener.keyPressed(GraphEditorPanelKeyListener.java:81)
at java.awt.Component.processKeyEvent(Component.java:6255)
at javax.swing.JComponent.processKeyEvent(JComponent.java:2809)
at java.awt.Component.processEvent(Component.java:6074)
at java.awt.Container.processEvent(Container.java:2039)
at java.awt.Component.dispatchEventImpl(Component.java:4660)
at java.awt.Container.dispatchEventImpl(Container.java:2097)
at java.awt.Component.dispatchEvent(Component.java:4488)
at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1856)
at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:722)
at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:1000)
at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:865)
at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:686)
at java.awt.Component.dispatchEventImpl(Component.java:4532)
at java.awt.Container.dispatchEventImpl(Container.java:2097)
at java.awt.Window.dispatchEventImpl(Window.java:2489)
at java.awt.Component.dispatchEvent(Component.java:4488)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:674)
at java.awt.EventQueue.access$400(EventQueue.java:81)
at java.awt.EventQueue$2.run(EventQueue.java:633)
at java.awt.EventQueue$2.run(EventQueue.java:631)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
at java.awt.EventQueue$3.run(EventQueue.java:647)
at java.awt.EventQueue$3.run(EventQueue.java:645)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:644)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)