如果工作区中存在工作灯项目,则 com.worklight.studio.plugin 线程在 Eclipse 启动时挂起
Posted
技术标签:
【中文标题】如果工作区中存在工作灯项目,则 com.worklight.studio.plugin 线程在 Eclipse 启动时挂起【英文标题】:com.worklight.studio.plugin thread hangs on eclipse startup if existing worklight projects in workspace 【发布时间】:2013-04-19 15:11:31 【问题描述】:我安装了 eclipse Juno 和 IBM Worklight studio 插件 v5.0.5。支持 Eclipse Juno 的工作灯文档,但是如果我创建一个工作灯项目然后关闭 Eclipse,然后尝试再次启动它,一个线程会在启动时挂起,从 com.worklight.studio.plugin 加载内容,我最终得到了杀死 Eclipse,因为它只是挂在加载屏幕上。每次挂起时加载的包都不相同,它似乎是随机的。这是一次发生时的堆栈跟踪:
!MESSAGE While loading class "com.worklight.studio.plugin.classpaths.ServerAPIContainer", thread "Thread[org.eclipse.wst.sse.ui.internal.reconcile.StructuredRegionProcessor,1,main]" timed out waiting (5000ms) for thread "Thread[Worker-0,5,main]" to finish starting bundle "com.worklight.studio.plugin_5.0.5.20121129-1027 [882]". To avoid deadlock, thread "Thread[org.eclipse.wst.sse.ui.internal.reconcile.StructuredRegionProcessor,1,main]" is proceeding but "com.worklight.studio.plugin.classpaths.ServerAPIContainer" may not be fully initialized.
!STACK 0
org.osgi.framework.BundleException: State change in progress for bundle "reference:file:plugins/com.worklight.studio.plugin_5.0.5.20121129-1027/" by thread "Worker-0".
at org.eclipse.osgi.framework.internal.core.AbstractBundle.beginStateChange(AbstractBundle.java:1088)
at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:298)
at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:440)
at org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:263)
at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:469)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)
at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:395)
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:464)
...
Caused by: org.eclipse.osgi.framework.internal.core.AbstractBundle$BundleStatusException
... 45 more
Root exception:
org.eclipse.osgi.framework.internal.core.AbstractBundle$BundleStatusException
at org.eclipse.osgi.framework.internal.core.AbstractBundle.beginStateChange(AbstractBundle.java:1088)
at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:298)
at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:440)
at org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:263)
at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:469)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)
at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:395)
...
eclipse.buildId=M20130204-1200
java.version=1.7.0_15
java.vendor=Oracle Corporation
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US
Framework arguments: -product org.eclipse.epp.package.jee.product
Command-line arguments: -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.jee.product
这是一个很长的堆栈跟踪,所以我只包含了我认为与上面相关的部分。我可以通过从我的工作区中删除工作灯项目来再次启动 Eclipse,但这意味着我只能在一个项目上工作一个会话。我看过关于这个问题的其他帖子,但他们都给出了相同的解决方案,只是删除项目。这个问题有没有更永久的解决方案?
谢谢, 亚历克斯
【问题讨论】:
请使用您在 Eclipse 中安装的插件列表编辑您的问题。 也就是你安装的插件... 我安装了 IBM Worklight studio 插件 v5.0.5。这是我安装的唯一插件。我安装了 Eclipse Juno,安装了 worklight 插件,然后开始使用它。我还没有安装其他任何东西。 卸载它并尝试最新版本 5.0.6.1,但还要确保从 Eclipse 工作区中删除 WorklightServerHome 文件夹(由于 5.0.5 和 5.0.6.x 之间的架构更改) . 您安装了 5.0.6.1 吗?有更新吗? 【参考方案1】:卸载它并尝试最新版本 5.0.6.1,但还要确保从 Eclipse 工作区中删除 WorklightServerHome 文件夹(由于 5.0.5 和 5.0.6.x 之间的架构更改)。
【讨论】:
以上是关于如果工作区中存在工作灯项目,则 com.worklight.studio.plugin 线程在 Eclipse 启动时挂起的主要内容,如果未能解决你的问题,请参考以下文章
Google Script:如果行中的值存在于另一个工作表中,则删除行