Exception on creating a page of a digital circuit gate with self-loop

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

Bug Description

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)

Tags: circuit page

Related branches

Revision history for this message
Danil Sokolov (danilovesky) wrote :
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

Bug attachments

Remote bug watches

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