前几天把GEF版本从3.0.1升级到了3.1M6,发现以前运行正常的GEF程序现在总出现下面这个异常,例如在我移动一个节点时,或者创建一个新节点时。
!
ENTRY org.eclipse.ui
4
0
2005
-
04
-
19
23
:
12
:
55.974
! MESSAGE tried to access method org.eclipse.ui.views.properties.PropertySheetEntry.refreshFromRoot()V from class org.eclipse.gef.ui.properties.UndoablePropertySheetEntry
! STACK 0
java.lang.IllegalAccessError: tried to access method org.eclipse.ui.views.properties.PropertySheetEntry.refreshFromRoot()V from class org.eclipse.gef.ui.properties.UndoablePropertySheetEntry
at org.eclipse.gef.ui.properties.UndoablePropertySheetEntry.access$ 0 (UndoablePropertySheetEntry.java: 1 )
at org.eclipse.gef.ui.properties.UndoablePropertySheetEntry$ 1 .commandStackChanged(UndoablePropertySheetEntry.java: 103 )
at org.eclipse.gef.commands.CommandStack.notifyListeners(CommandStack.java: 253 )
at org.eclipse.gef.commands.CommandStack.execute(CommandStack.java: 141 )
at org.eclipse.gef.tools.AbstractTool.executeCommand(AbstractTool.java: 374 )
at org.eclipse.gef.tools.AbstractTool.executeCurrentCommand(AbstractTool.java: 386 )
at org.eclipse.gef.tools.DragEditPartsTracker.performDrag(DragEditPartsTracker.java: 450 )
at org.eclipse.gef.tools.DragEditPartsTracker.handleButtonUp(DragEditPartsTracker.java: 320 )
at org.eclipse.gef.tools.AbstractTool.mouseUp(AbstractTool.java: 1035 )
at org.eclipse.gef.tools.SelectionTool.mouseUp(SelectionTool.java: 545 )
at org.eclipse.gef.EditDomain.mouseUp(EditDomain.java: 259 )
at org.eclipse.gef.ui.parts.DomainEventDispatcher.dispatchMouseReleased(DomainEventDispatcher.java: 374 )
at org.eclipse.draw2d.LightweightSystem$EventHandler.mouseUp(LightweightSystem.java: 548 )
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java: 136 )
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java: 82 )
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java: 842 )
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java: 2908 )
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java: 2541 )
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java: 1612 )
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java: 1578 )
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java: 293 )
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java: 144 )
at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java: 102 )
at org.eclipse.core.internal.runtime.PlatformActivator$ 1 .run(PlatformActivator.java: 228 )
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java: 333 )
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java: 150 )
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.core.launcher.Main.invokeFramework(Main.java: 268 )
at org.eclipse.core.launcher.Main.basicRun(Main.java: 260 )
at org.eclipse.core.launcher.Main.run(Main.java: 887 )
at org.eclipse.core.launcher.Main.main(Main.java: 871 )
! MESSAGE tried to access method org.eclipse.ui.views.properties.PropertySheetEntry.refreshFromRoot()V from class org.eclipse.gef.ui.properties.UndoablePropertySheetEntry
! STACK 0
java.lang.IllegalAccessError: tried to access method org.eclipse.ui.views.properties.PropertySheetEntry.refreshFromRoot()V from class org.eclipse.gef.ui.properties.UndoablePropertySheetEntry
at org.eclipse.gef.ui.properties.UndoablePropertySheetEntry.access$ 0 (UndoablePropertySheetEntry.java: 1 )
at org.eclipse.gef.ui.properties.UndoablePropertySheetEntry$ 1 .commandStackChanged(UndoablePropertySheetEntry.java: 103 )
at org.eclipse.gef.commands.CommandStack.notifyListeners(CommandStack.java: 253 )
at org.eclipse.gef.commands.CommandStack.execute(CommandStack.java: 141 )
at org.eclipse.gef.tools.AbstractTool.executeCommand(AbstractTool.java: 374 )
at org.eclipse.gef.tools.AbstractTool.executeCurrentCommand(AbstractTool.java: 386 )
at org.eclipse.gef.tools.DragEditPartsTracker.performDrag(DragEditPartsTracker.java: 450 )
at org.eclipse.gef.tools.DragEditPartsTracker.handleButtonUp(DragEditPartsTracker.java: 320 )
at org.eclipse.gef.tools.AbstractTool.mouseUp(AbstractTool.java: 1035 )
at org.eclipse.gef.tools.SelectionTool.mouseUp(SelectionTool.java: 545 )
at org.eclipse.gef.EditDomain.mouseUp(EditDomain.java: 259 )
at org.eclipse.gef.ui.parts.DomainEventDispatcher.dispatchMouseReleased(DomainEventDispatcher.java: 374 )
at org.eclipse.draw2d.LightweightSystem$EventHandler.mouseUp(LightweightSystem.java: 548 )
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java: 136 )
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java: 82 )
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java: 842 )
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java: 2908 )
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java: 2541 )
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java: 1612 )
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java: 1578 )
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java: 293 )
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java: 144 )
at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java: 102 )
at org.eclipse.core.internal.runtime.PlatformActivator$ 1 .run(PlatformActivator.java: 228 )
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java: 333 )
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java: 150 )
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.core.launcher.Main.invokeFramework(Main.java: 268 )
at org.eclipse.core.launcher.Main.basicRun(Main.java: 260 )
at org.eclipse.core.launcher.Main.run(Main.java: 887 )
at org.eclipse.core.launcher.Main.main(Main.java: 871 )
调试了很久也没找到原因,最后在GEF新闻组里得到了答案,原来GEF3.1M6要求Eclipse的版本在3.1M6或以上,而我正在使用的是Eclipse 3.1M5a,换到3.1M6一试果然OK。
如果你遇到类似的奇怪异常,不妨也先检查一下Eclipse和插件的版本。
本文转自博客园八进制的博客,原文链接:由于Eclipse版本不符造成的异常,如需转载请自行联系原博主。