web-dev-qa-db-fra.com

Impossible d'acquérir le verrou de changement d'état

Nos produits utilisent la dernière version de SWT, 3.7.2, prête à être utilisée en production. Comme personne ne savait à l’époque comment la prochaine version de Java s’appellerait (et comment sauraient-ils que 8 vient après 7, c’est comme une mathématique avancée), nous avons été obligés d’échanger le org.Eclipse.osgi de 3.7.2 à 3.10.0, que nous pouvons maintenant prendre en charge Java 8. Bien que ce ne soit peut-être pas la meilleure des idées, cela fonctionne en théorie devrait.

Bien sûr, étant le principal problème d’Eclipse Luna, il existe une "erreur" lorsque nous commençons nos applications (environ 50% du temps, je suppose):

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)

Il n'y a pas beaucoup d'informations sur le Web sur le problème, la plupart suggèrent de supprimer simplement l'espace de travail, mais cela ne se produit généralement qu'au démarrage d'Eclipse, pas les applications finales. Néanmoins, j'ai supprimé les espaces de travail et les dossiers d'exécution. Rien n'y fait. L '"erreur" est également générée dans le produit exporté mais, autant que je sache, tout fonctionne toujours comme prévu.

Y a-t-il un moyen de le réparer? Et si non, y a-t-il un moyen de simplement cacher cette stupide exception (désactiver la journalisation un instant, effacer le journal, peu importe, je ne suis pas difficile)? 

15
Steffi S.

Cela ressemble au démarrage de la structure simpleconfigurator qui tente de redémarrer la structure. Le framework détecte cette récursivité et lève une exception pour y échapper. Le problème semble être dans simpleconfigurator qui tente de démarrer le framework qui le démarre.

7
BJ Hargrave

J'ai résolu le problème en suivant ces étapes simples,

  1. Accédez à votre répertoire Eclipse et ouvrez le répertoire de configuration.
  2. ouvrez le répertoire org.Eclipse.osgi.
  3. ouvrir le dossier .manager.
  4. Supprimer le fichier .fileTableLock.
  5. Redémarrez votre Eclipse.
12
Prashant Gadekar

J'ai rencontré le même problème. Supprimer le fichier .log donné du dossier de configuration et redémarrer Eclipse devrait résoudre votre problème.

7
user3534759

J'utilise Red Hat Developer Studio 10.4 (Eclipse 4.6) et j'ai essayé d'utiliser le plugin Eclipse Checkstyle. 

Après l'installation, j'ai redémarré mon IDE et reçu la notification d'incident.

J'ai essayé toutes les suggestions, mais seulement lorsque j'ai supprimé un fichier appelé framework.info.34, mon problème a été résolu.

Ce fichier est dans le dossier %Eclipse_home%/configuration/org.Eclipse.osgi.

3
ℛɑƒæĿ

j'ai le même problème,

j'ai supprimé les fichiers de leurs emplacements respectifs 1) "Eclipse\configuration\org.Eclipse.osgi.manager" . fileTableLock . fileTable3 . fileTable4

2) Eclipse\configuration *. Log

après que j’ai ouvert l’Eclipse, cela a fonctionné sans redémarrage du PC.

1

Problème surgissant après la mise à niveau de néon Eclipse via update-site avec l'installation de nouveaux plugins.

Étape 01: J'ai supprimé les fichiers .fileTable. * Du répertoire $ {Eclipse_home} /configuration/org.Eclipse.osgi/.manager.

Étape 02: Suppression du cache osgi et du cache d'autres plugins en démarrant en mode de nettoyage Eclipse

Eclipse-clean

1
Yehiya

pour les personnes confrontées à ce problème jusqu'à l'exécution d'Eclipse dans Eclipse à l'exécution: dossier propre: [votreEclipseSourceWorkspace] /. metadata/.plugins/org.Eclipse.pde.core/[votreRunConfiguration] /org.Eclipse.osgi /.manager[votreEclipseSourceWorkspace/.metadata/.plugins/org.Eclipse.pde.core/[yourRunConfiguration]/org.Eclipse.osgi supprime tous les fichiers (pas les dossiers) puis ajoutez-les à votre configuration-clean comme programme arg