Ste*_* S. 17 java osgi eclipse-luna
我们的产品使用最新的生产就绪型SWT,3.7.2.既然当时没有人知道下一个Java版本会被调用(以及他们怎么会知道8之后是8,这就像高等数学一样),我们被迫将org.eclipse.osgi3.7.2 交换到3.10.0,这样我们现在可以支持Java 8.虽然这可能不是最好的想法,但理论上它应该可行.
当然,作为Eclipse Luna的主要搞砸,当我们启动应用程序时会出现这个"错误"(大约50%的时间,我猜):
org.osgi.framework.BundleException: Unable to acquire the state change lock for the module: osgi.identity; osgi.identity="org.eclipse.osgi"; type="osgi.bundle"; version:Version="3.10.0.v20140606-1445"; singleton:="true" [id=0] STARTED [STARTED] invalid
at org.eclipse.osgi.container.Module.lockStateChange(Module.java:329)
at org.eclipse.osgi.container.SystemModule.init(SystemModule.java:44)
at org.eclipse.osgi.container.SystemModule.start(SystemModule.java:170)
at org.eclipse.osgi.internal.framework.EquinoxBundle.start(EquinoxBundle.java:393)
at org.eclipse.osgi.internal.framework.EquinoxBundle.start(EquinoxBundle.java:412)
at org.eclipse.equinox.internal.simpleconfigurator.ConfigApplier.startBundles(ConfigApplier.java:307)
at org.eclipse.equinox.internal.simpleconfigurator.ConfigApplier.install(ConfigApplier.java:108)
at org.eclipse.equinox.internal.simpleconfigurator.SimpleConfiguratorImpl.applyConfiguration(SimpleConfiguratorImpl.java:129)
at org.eclipse.equinox.internal.simpleconfigurator.SimpleConfiguratorImpl.applyConfiguration(SimpleConfiguratorImpl.java:143)
at org.eclipse.equinox.internal.simpleconfigurator.Activator.start(Activator.java:48)
at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:771)
at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:1)
at java.security.AccessController.doPrivileged(Native Method)
at org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator(BundleContextImpl.java:764)
at org.eclipse.osgi.internal.framework.BundleContextImpl.start(BundleContextImpl.java:721)
at org.eclipse.osgi.internal.framework.EquinoxBundle.startWorker0(EquinoxBundle.java:936)
at org.eclipse.osgi.internal.framework.EquinoxBundle$EquinoxModule.startWorker(EquinoxBundle.java:319)
at org.eclipse.osgi.container.Module.doStart(Module.java:571)
at org.eclipse.osgi.container.Module.start(Module.java:439)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1582)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1562)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1533)
at org.eclipse.osgi.container.SystemModule.startWorker(SystemModule.java:242)
at org.eclipse.osgi.container.Module.doStart(Module.java:571)
at org.eclipse.osgi.container.Module.start(Module.java:439)
at org.eclipse.osgi.container.SystemModule.start(SystemModule.java:172)
at org.eclipse.osgi.internal.framework.EquinoxBundle.start(EquinoxBundle.java:393)
at org.eclipse.osgi.internal.framework.EquinoxBundle.start(EquinoxBundle.java:412)
at org.eclipse.osgi.launch.Equinox.start(Equinox.java:115)
at org.eclipse.core.runtime.adaptor.EclipseStarter.startup(EclipseStarter.java:320)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:232)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
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)
Run Code Online (Sandbox Code Playgroud)
网上没有太多关于问题的信息,大多数建议只删除工作区,但对于大多数情况,它只发生在启动Eclipse时,而不是最终的应用程序 - 尽管如此,我删除了工作区和运行时文件夹.什么都没有帮助."错误"也会在导出的产品中抛出,但据我所知,一切仍然按预期工作.
有办法解决吗?如果没有,有没有办法隐藏那个愚蠢的异常(暂时禁用日志,清除日志,无论如何,我不挑剔)?
Pra*_*kar 17
我按照这些简单的步骤解决了问题,
这看起来像框架启动启动simpleconfigurator,它试图再次启动框架.框架检测到这种递归并抛出异常以逃避它.问题似乎是在simpleconfigurator中尝试启动启动它的框架.
我使用 Red Hat Developer Studio 10.4 (Eclipse 4.6) 并尝试使用 Eclipse Checkstyle 插件。
安装后,我重新启动了我的 IDE 并收到了崩溃通知。
我尝试了所有建议,但只有当我删除一个名为framework.info.34我的问题的文件时才解决。
该文件在%eclipse_home%/configuration/org.eclipse.osgi文件夹中。
| 归档时间: |
|
| 查看次数: |
16697 次 |
| 最近记录: |