Open lemmy opened 6 years ago
@lemmy Can you add more info to make it obvious to anyone why the current behaviour is problematic?
The behaviour is problematic because it clutters the log with several thousand lines of dot input. If additionally one happens to print the log to Eclipse's console, it can crash the IDE with a heap overflow.
Thanks, quite compelling when you put it like that!
@lemmy Few questions for you:
It's a state graph with a few thousand nodes.
markus@avocado:~/src/TLA/EWD840.toolbox/Model_3$ wc -l Model_3.dot 14059 Model_3.dot
The DOT string is generated by TLC - an explicit state model checker
Not sure
By the way, I'm aware that visualizing a graph with more than a few dozen nodes make little sense anyway. However, Graphviz shouldn't crash the Eclipse IDE if one is so stupid to actually try and show such a graph in the image viewer.
When the dot process (com.abstratt.graphviz.GraphViz.runDot(String...)) runs into a TimeOutException due to an excessive size of the dot input, the full input is attached to the IStatus (com.abstratt.graphviz.GraphViz.logInput(ByteArrayOutputStream)) and subsequently printed to the console (com.abstratt.imageviewer.AbstractGraphicalContentProvider.ContentLoader.run(IProgressMonitor)).
Instead, in case of a TimeOutException only attach an excerpt of the dot input to IStatus. The root cause for the TimeOutException is likely to be caused by the excessive size of the dot input.