Dot layout tool is broken

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

Bug Description

Dot layout tool seem to be broken with version 2.36.0 of graphviz
  $ dot -V
  dot - graphviz version 2.36.0 (20140111.2315)

To reproduce create a DirectedGraph with a single vertex and choose "Tools->Layout->Layout using dot" from the menu. The following exception is thrown:

Exception in thread "AWT-EventQueue-0" org.workcraft.plugins.layout.generated.TokenMgrError: Lexical error at line 3, column 26. Encountered: "." (46), after : ""
 at org.workcraft.plugins.layout.generated.DotParserTokenManager.getNextToken(DotParserTokenManager.java:639)
 at org.workcraft.plugins.layout.generated.DotParser.jj_ntk(DotParser.java:348)
 at org.workcraft.plugins.layout.generated.DotParser.attr(DotParser.java:132)
 at org.workcraft.plugins.layout.generated.DotParser.attr_list(DotParser.java:162)
 at org.workcraft.plugins.layout.generated.DotParser.attr_statement(DotParser.java:185)
 at org.workcraft.plugins.layout.generated.DotParser.statement(DotParser.java:196)
 at org.workcraft.plugins.layout.generated.DotParser.graph(DotParser.java:107)
 at org.workcraft.plugins.layout.DotLayoutTool.applyLayout(DotLayoutTool.java:130)
 at org.workcraft.plugins.layout.DotLayoutTool.run(DotLayoutTool.java:234)
 at org.workcraft.util.Tools.run(Tools.java:38)
 at org.workcraft.gui.MainWindow.runTool(MainWindow.java:1062)
 at org.workcraft.gui.MainMenu$ToolAction.run(MainMenu.java:69)
 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:1995)
 at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
 at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
 at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
 at javax.swing.AbstractButton.doClick(AbstractButton.java:357)
 at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:809)
 at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:850)
 at java.awt.Component.processMouseEvent(Component.java:6297)
 at javax.swing.JComponent.processMouseEvent(JComponent.java:3275)
 at java.awt.Component.processEvent(Component.java:6062)
 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.LightweightDispatcher.retargetMouseEvent(Container.java:4575)
 at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4236)
 at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4166)
 at java.awt.Container.dispatchEventImpl(Container.java:2083)
 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)

The intermediate dot file created in the /tmp directory:
digraph work {
    graph [bb="0,0,72,86",
        nodesep=0.5,
        overlap=false,
        splines=true
    ];
    node [label="\N",
        shape=box
    ];
    1 [fixedsize=true,
        height=1.1944,
        pos="36,43",
        width=1];
}

Tags: layout

Related branches

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

If graphviz 2.26.0 the format was a little differen:

digraph work {
 graph [nodesep="0.5", overlap=false, splines=true];
 node [label="\N", shape=box];
 graph [bb="0,0,72,128"];
 1 [width=1, height="1.7639", fixedsize=true, pos="36,64"];
}

Notice the nodesep="0.5" as opposed to nodesep=0.5 in current version.

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.