Eclipse RCP中相同处理程序之间的冲突



我正在开发一个Eclipse RCP应用程序,并且最近开始看到大量关于冲突处理程序的控制台错误消息,例如:

!ENTRY org.eclipse.ui 4 4 2016-09-22 08:57:41.828
!MESSAGE Conflicting handlers for org.eclipse.ui.edit.undo: {ActionHandler(org.eclipse.ui.operations.UndoActionHandler@7df5358)} vs {ActionHandler(org.eclipse.ui.operations.UndoActionHandler@7df5358)}
Status ERROR: org.eclipse.ui code=4 Conflicting handlers for org.eclipse.ui.edit.undo: {ActionHandler(org.eclipse.ui.operations.UndoActionHandler@7df5358)} vs {ActionHandler(org.eclipse.ui.operations.UndoActionHandler@7df5358)} null
!ENTRY org.eclipse.ui 4 4 2016-09-22 08:57:42.625
!MESSAGE Conflicting handlers for org.eclipse.ui.edit.redo: {ActionHandler(org.eclipse.ui.operations.RedoActionHandler@62ccbd95)} vs {ActionHandler(org.eclipse.ui.operations.RedoActionHandler@62ccbd95)}
Status ERROR: org.eclipse.ui code=4 Conflicting handlers for org.eclipse.ui.edit.redo: {ActionHandler(org.eclipse.ui.operations.RedoActionHandler@62ccbd95)} vs {ActionHandler(org.eclipse.ui.operations.RedoActionHandler@62ccbd95)} null
!ENTRY org.eclipse.ui 4 4 2016-09-22 08:57:43.100
!MESSAGE Conflicting handlers for org.eclipse.jdt.ui.edit.text.java.open.editor: {ActionHandler(org.eclipse.jdt.ui.actions.OpenAction@135ddb56)} vs {ActionHandler(org.eclipse.jdt.ui.actions.OpenAction@135ddb56)}
Status ERROR: org.eclipse.ui code=4 Conflicting handlers for org.eclipse.jdt.ui.edit.text.java.open.editor: {ActionHandler(org.eclipse.jdt.ui.actions.OpenAction@135ddb56)} vs {ActionHandler(org.eclipse.jdt.ui.actions.OpenAction@135ddb56)} null
!ENTRY org.eclipse.ui 4 4 2016-09-22 08:57:43.581
!MESSAGE Conflicting handlers for org.eclipse.jdt.ui.edit.text.java.open.editor: {ActionHandler(org.eclipse.jdt.ui.actions.OpenAction@135ddb56)} vs {ActionHandler(org.eclipse.jdt.ui.actions.OpenAction@135ddb56)}
Status ERROR: org.eclipse.ui code=4 Conflicting handlers for org.eclipse.jdt.ui.edit.text.java.open.editor: {ActionHandler(org.eclipse.jdt.ui.actions.OpenAction@135ddb56)} vs {ActionHandler(org.eclipse.jdt.ui.actions.OpenAction@135ddb56)} null
!ENTRY org.eclipse.ui 4 4 2016-09-22 08:57:43.595
!MESSAGE Conflicting handlers for org.eclipse.ui.edit.move: {ActionHandler(org.eclipse.ui.actions.MoveResourceAction@6859bbd4)} vs {ActionHandler(org.eclipse.ui.actions.MoveResourceAction@6859bbd4)}
Status ERROR: org.eclipse.ui code=4 Conflicting handlers for org.eclipse.ui.edit.move: {ActionHandler(org.eclipse.ui.actions.MoveResourceAction@6859bbd4)} vs {ActionHandler(org.eclipse.ui.actions.MoveResourceAction@6859bbd4)} null
!ENTRY org.eclipse.ui 4 4 2016-09-22 08:57:44.015
!MESSAGE Conflicting handlers for org.eclipse.ui.edit.move: {ActionHandler(org.eclipse.ui.actions.MoveResourceAction@6859bbd4)} vs {ActionHandler(org.eclipse.ui.actions.MoveResourceAction@6859bbd4)}
Status ERROR: org.eclipse.ui code=4 Conflicting handlers for org.eclipse.ui.edit.move: {ActionHandler(org.eclipse.ui.actions.MoveResourceAction@6859bbd4)} vs {ActionHandler(org.eclipse.ui.actions.MoveResourceAction@6859bbd4)} null
!ENTRY org.eclipse.ui 4 4 2016-09-22 08:57:44.026
!MESSAGE Conflicting handlers for org.eclipse.ui.edit.rename: {ActionHandler(org.eclipse.ui.actions.RenameResourceAction@7d836c4a)} vs {ActionHandler(org.eclipse.ui.actions.RenameResourceAction@7d836c4a)}
Status ERROR: org.eclipse.ui code=4 Conflicting handlers for org.eclipse.ui.edit.rename: {ActionHandler(org.eclipse.ui.actions.RenameResourceAction@7d836c4a)} vs {ActionHandler(org.eclipse.ui.actions.RenameResourceAction@7d836c4a)} null

值得注意的是,这些都是平台定义的处理程序,冲突似乎发生在每个处理程序和它自己之间,这至少可以说是令人困惑的。

当我在应用程序的Project Explorer视图中单击条目时,所有错误都会出现。当我四处点击时,项目资源管理器的响应性降低了,直到上下文菜单不再弹出。

我的应用程序在Eclipse 4.5版本的兼容模式下运行。

另一个细节,可能相关也可能不相关,是我在安装VisualVM Eclipse插件后开始看到这些消息。我已经卸载了它,但仍然看到错误

我最终发现了问题并能够修复它。

我添加到Project Explorer上下文菜单中的一个新项目依赖于PropertyTester来决定何时显示它。由于实现错误,这个测试非常慢(需要几秒钟才能执行),这显然会导致处理程序解决问题。

大大提高了PropertyTester的性能,导致这些错误消息不再显示,并且项目浏览器再次正常工作。

最新更新