我在 Eclipse 中构建了一个编辑器部分来可视化 Zest 图表。我的问题:如果我尝试关闭包含大图(~6000 个节点,9000 条边)的编辑器部分,eclipse 无法处理关闭操作并挂断。
有什么想法可以解决问题或调试吗?
我认为问题是要处理图形对象,但我不知道要解决它。
提前致谢!
为了调试它,我会尝试查看 Eclipse 日志文件 ( workspace/.metadata/.log
) 以获取有关发生情况的线索。这可能是一些内存问题。如果从日志文件中听起来像这样,您可以尝试更改您的eclipse.ini
配置,特别是-XX:MaxPermSize
、-Xms
和-Xmx
值(请参阅http://wiki.eclipse.org/Eclipse.ini)。
如果问题在合理的内存值下仍然存在,如果您可以提交错误,那就太好了:https ://bugs.eclipse.org/bugs/enter_bug.cgi?product=GEF&component=Zest
问题是方法“org.eclipse.gef4.zest.layouts.algorithms.TreeLayoutObserver.TreeNode.isAncestorOf(TreeNode descendant)”。我为我修复了它,我将报告一个错误(在评论中显示错误 ID)。如果有人需要快速修复错误:
旧版:
public boolean isAncestorOf(TreeNode descendant) {
while (descendant.depth > this.depth) {
descendant = descendant.parent;
}
return descendant == this;
}
新版本:
public boolean isAncestorOf(TreeNode descendant) {
while (descendant.depth > this.depth) {
if (descendant == descendant.parent) {
return false;
} else {
descendant = descendant.parent;
}
}
return descendant == this;
}