在做RCP的eclipse插件开发时,启动管理软件界面时,总是报如下错误 :

!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 0
java.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...的更多相关文章

  1. Android开发中java.lang.RuntimeException: Unable to start activity ComponentInfo{xxx}

    Android开发中java.lang.RuntimeException: Unable to start activity ComponentInfo{xxx}: java.lang.NullPoi ...

  2. sqoop导出hive数据到mysql错误: Caused by: java.lang.RuntimeException: Can't parse input data

    Sqoop Export数据到本地数据库时出现错误,命令如下: sqoop export \ --connect 'jdbc:mysql://202.193.60.117/dataweb?useUni ...

  3. MapReduce错误之Error: java.lang.RuntimeException: java.lang.NoSuchMethodException的解决方法

    今天跑MapReduce项目的时候遇到了这个问题,日志如下所示: // :: DEBUG ipc.ProtobufRpcEngine: Call: getDiagnostics took 19ms E ...

  4. 用idea+maven编译打包spark project core错误:java.lang.RuntimeException: Unable to load a Suite class

    Discovery starting. *** RUN ABORTED *** java.lang.RuntimeException: Unable to load a Suite class tha ...

  5. eclipse 4 rcp: java.lang.RuntimeException: No application id has been found.

    错误详情: java.lang.RuntimeException: No application id has been found. at org.eclipse.equinox.internal. ...

  6. [JAVA][RCP]Clean project之后报错:java.lang.RuntimeException: No application id has been found.

    Clean了一下Project,然后就报了如下错误 !ENTRY com.release.nattable.well_analysis 2 0 2015-11-20 17:04:44.609 !MES ...

  7. 使用CXF 2.7.5出现的java.lang.RuntimeException: Cannot create a secure XMLInputFactory错误解决

    昨天启动工程测试webservice服务,结果发现服务一调用就报java.lang.RuntimeException: Cannot create a secure XMLInputFactory j ...

  8. java.lang.RuntimeException: java.lang.NullPointerException...的错误

    先FQ,让电脑能登上谷歌,然后重新安装,应该就好了,我的是这样解决的.如果下次安装又报:java.lang.RuntimeException: java.lang.NullPointerExcepti ...

  9. 我的Android进阶之旅------>Android中MediaRecorder.stop()报错 java.lang.RuntimeException: stop failed.【转】

    本文转载自:http://blog.csdn.net/ouyang_peng/article/details/48048975 今天在调用MediaRecorder.stop(),报错了,java.l ...

随机推荐

  1. poj-3895-Cycles of Lanes 简单DFS

    题目链接: http://poj.org/problem?id=3895 题目意思: 在无向连通图中图中找一个经过边数最多的环. 解题思路: 从任意一点直接DFS,不用回溯,注意构成环的话至少有3条边 ...

  2. 控件风格19种,必须倒背如流——其实就是控件所拥有的能力,即有条件使用VCL框架所提供的(功能)代码

    { New TControlStyles: csNeedsBorderPaint and csParentBackground. These two ControlStyles are only ap ...

  3. delphi json(CDS包含了Delta数据包)

    在delphi中,数据集是最常用数据存取方式.因此,必须建立JSON与TDataSet之间的互转关系,实现数据之间通讯与转换.值得注意的是,这只是普通的TDataset与JSON之间转换,由于CDS包 ...

  4. 减少HTTP请求之合并图片详解(大型网站优化技术)

    原文:减少HTTP请求之合并图片详解(大型网站优化技术) 一.相关知识讲解 看过雅虎的前端优化35条建议,都知道优化前端是有多么重要.页面的加载速度直接影响到用户的体验.80%的终端用户响应时间都花在 ...

  5. javascript面向对象基础讲解(工厂模式、构造函数模式、原型模式、混合模式、动态原型模式)

    面向对象可以把程序中的关键模块都视为对象,而模块拥有属性及方法.这样我们如果把一些属性及方法封装起来,日后使用将非常方便,也可以避免繁琐重复的工作.接下来将为大家讲解在JS中面向对象的实现.   工厂 ...

  6. 杭电OJ_DIY_YTW2_1001 A Mathematical Curiosity

    Problem Description Given two integers n and m, count the number of pairs of integers (a,b) such tha ...

  7. python3语法小记(二)列表 和 元组

    列表(list): 列表就像一个线性容器,但是比C++的 lis t扩展多得多 列表里的元素可以是相同类型,也可以包含各种类型,比如列表里嵌套另一个列表 >>> L1 = [1,2, ...

  8. 【ASP.NET Web API教程】2.3.4 创建Admin视图

    原文:[ASP.NET Web API教程]2.3.4 创建Admin视图 注:本文是[ASP.NET Web API系列教程]的一部分,如果您是第一次看本博客文章,请先看前面的内容. Part 4: ...

  9. OSGi:生命周期层

    前言 生命周期层在OSGi框架中属于模块层上面的一层,它的运作是建立在模块层的功能之上的.生命周期层一个主要的功能就是让你能够从外部管理应用或者建立能够自我管理的应用(或者两者的结合),并且给了应用本 ...

  10. HDU4939Stupid Tower Defense (有思想的dp)

    Stupid Tower Defense Time Limit: 12000/6000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Oth ...