RCP开发中错误:java.lang.RuntimeException: WARNING: Prevented recursive attempt to activate part...
来源:互联网 发布:mac dns 编辑:程序博客网 时间:2024/04/30 08:54
在做RCP的eclipse插件开发时,启动管理软件界面时,总是报如下错误 :
之前一直不知道错误原因,在网上查了一下,解决办法有几个 ,
1.New focus event is run while other focus event was executing and therefore not finished yet.
You have to override setFocus() or find a good place and put this inside your code:
So Display will wait until current focus event is finish, and then will execute new focus event.
根据我的测试,上面的代码中,去掉
这段也是一样可以的
2. I just found that one of my colleagues add a PartListener to the part service. When an activated part was adaptable to the IContentOutlinePage, the listener activates the ContentOutline view, so it get also the focus. This was the reason of the exception.
!ENTRY org.eclipse.ui.workbench 4 0 2012-05-25 18:44:21.306!MESSAGE WARNING: Prevented recursive attempt to activate part org.gluster.storage.management.console.views.ClusterSummaryView while still in the middle of activating part org.gluster.storage.management.console.views.NavigationView!STACK 0java.lang.RuntimeException: WARNING: Prevented recursive attempt to activate part org.gluster.storage.management.console.views.ClusterSummaryView while still in the middle of activating part org.gluster.storage.management.console.views.NavigationView at org.eclipse.ui.internal.WorkbenchPage.setActivePart(WorkbenchPage.java:3586) at org.eclipse.ui.internal.WorkbenchPage.internalActivate(WorkbenchPage.java:691) at org.eclipse.ui.internal.WorkbenchPage.activate(WorkbenchPage.java:663) at org.eclipse.ui.internal.WorkbenchPage.busyShowView(WorkbenchPage.java:1170) at org.eclipse.ui.internal.WorkbenchPage.busyShowView(WorkbenchPage.java:1147) at org.eclipse.ui.internal.WorkbenchPage$20.run(WorkbenchPage.java:3921) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) at org.eclipse.ui.internal.WorkbenchPage.showView(WorkbenchPage.java:3918) at org.eclipse.ui.internal.WorkbenchPage.showView(WorkbenchPage.java:3894) at org.gluster.storage.management.console.views.GlusterViewsManager.showViewsForCluster(GlusterViewsManager.java:82) at org.gluster.storage.management.console.views.GlusterViewsManager.updateViews(GlusterViewsManager.java:53) at org.gluster.storage.management.console.views.NavigationView.selectionChanged(NavigationView.java:142) at org.eclipse.ui.internal.AbstractSelectionService.fireSelection(AbstractSelectionService.java:156) at org.eclipse.ui.internal.AbstractSelectionService.setActivePart(AbstractSelectionService.java:282) at org.eclipse.ui.internal.WorkbenchPagePartList.fireActivePartChanged(WorkbenchPagePartList.java:60) at org.eclipse.ui.internal.PartList.setActivePart(PartList.java:136) at org.eclipse.ui.internal.WorkbenchPage.setActivePart(WorkbenchPage.java:3636) at org.eclipse.ui.internal.WorkbenchPage.internalActivate(WorkbenchPage.java:691) at org.eclipse.ui.internal.WorkbenchPage.activate(WorkbenchPage.java:663) at org.eclipse.ui.internal.WorkbenchPage.makeActive(WorkbenchPage.java:1324) at org.eclipse.ui.internal.WorkbenchPage.updateActivePart(WorkbenchPage.java:1304) at org.eclipse.ui.internal.WorkbenchPage.updateVisibility(WorkbenchPage.java:3779) at org.eclipse.ui.internal.WorkbenchPage.onActivate(WorkbenchPage.java:2715) at org.eclipse.ui.internal.WorkbenchWindow$27.run(WorkbenchWindow.java:3023) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) at org.eclipse.ui.internal.WorkbenchWindow.setActivePage(WorkbenchWindow.java:3004) at org.eclipse.ui.internal.WorkbenchWindow.busyOpenPage(WorkbenchWindow.java:799) at org.eclipse.ui.internal.Workbench$23.runWithException(Workbench.java:1224) at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:31) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:135) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3563) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3212) at org.eclipse.ui.application.WorkbenchAdvisor.openWindows(WorkbenchAdvisor.java:803) at org.eclipse.ui.internal.Workbench$33.runWithException(Workbench.java:1595) at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:31) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:135) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3563) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3212) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2494) at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:674) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:667) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.gluster.storage.management.console.Application.start(Application.java:100) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577) at org.eclipse.equinox.launcher.Main.run(Main.java:1410) at org.eclipse.equinox.launcher.Main.main(Main.java:1386)
之前一直不知道错误原因,在网上查了一下,解决办法有几个 ,
1.New focus event is run while other focus event was executing and therefore not finished yet.
You have to override setFocus() or find a good place and put this inside your code:
Display.getDefault().asyncExec(new Runnable() { @Override public void run() { while (Display.getDefault().readAndDispatch()) { //wait for events to finish before continue } // your code for focus here // e.g. table.forceFocus() }});
So Display will wait until current focus event is finish, and then will execute new focus event.
根据我的测试,上面的代码中,去掉
while (Display.getDefault().readAndDispatch()) { //wait for events to finish before continue}
这段也是一样可以的
2. I just found that one of my colleagues add a PartListener to the part service. When an activated part was adaptable to the IContentOutlinePage, the listener activates the ContentOutline view, so it get also the focus. This was the reason of the exception.
- RCP开发中错误:java.lang.RuntimeException: WARNING: Prevented recursive attempt to activate part。。
- RCP开发中错误:java.lang.RuntimeException: WARNING: Prevented recursive attempt to activate part...
- Warning: Attempt to present错误
- 错误记录java.lang.IllegalStateException: Recursive entry to executePendingTransactions
- Android开发中java.lang.RuntimeException: Unable to start activity ComponentInfo{xxx}: java.lang.NullPoi
- Android开发中java.lang.RuntimeException: Unable to start activity ComponentInfo{xxx}: java.lang.NullPoi
- Android开发中java.lang.RuntimeException: Unable to start activity ComponentInfo{xxx}: java.lang.NullPoi
- Android开发中java.lang.RuntimeException: Unable to start activity ComponentInfo{xxx}: java.lang.NullPoi
- Android开发中java.lang.RuntimeException: Unable to start activity ComponentInfo{xxx}: java.lang.NullPoi
- Android开发中java.lang.RuntimeException: Unable to start activity ComponentInfo{xxx}: java.lang.NullPoi
- Android开发中java.lang.RuntimeException: Unable to start activity ComponentInfo{xxx}: java.lang.NullPoi
- Android开发中java.lang.RuntimeException: Unable to start activity ComponentInfo{xxx}: java.lang.NullPoi
- Android开发中java.lang.RuntimeException: Unable to start activity ComponentInfo{xxx}: java.lang.NullPoi
- Android开发中 java.lang.RuntimeException: Unable to start activity XXXXXX java.lang.NullPointerExceptio
- Android开发中java.lang.RuntimeException: Unable to start activity ComponentInfo xxx: java.lang.NullPoin
- Android开发中java.lang.RuntimeException: Unable to start activity ComponentInfo{xxx}: java.lang.NullPoi
- 关于安卓被开发中出现java.lang.RuntimeException: Unable to start activity ComponentInfo
- Android开发中java.lang.RuntimeException:错误的集中原因及解决办法
- 求解多边形内核
- DWS 根据密钥的 加密解密算法
- uboot的gd_t和bd_t数据结构
- Java基础<十六>---> IO之其他流对象
- oracle form builder <BEA-141281> <unable to get file lock, will retry ...>
- RCP开发中错误:java.lang.RuntimeException: WARNING: Prevented recursive attempt to activate part...
- iOS学习之UINavigationController详解与使用(三)ToolBar
- Android Gallery实现3D相册(附效果图+Demo源码)
- SQL2008配置管理工具服务显示远程过程调用失败
- java.lang.OutOfMemoryError: PermGen space及其解决方法
- C语言深度解剖读书笔记
- C#控制台程序与sql server数据库之间的链接。
- 素数表
- 【USB接口电涌是什么故障】