In our team, we had multiple broken Eclipse workspaces over the last weeks. These broken workspaces prevented eclipse to start normally. In at least two of these cases, eclipse produced the following stack trace when startup failed:
java.lang.ExceptionInInitializerError at org.eclipse.wb.internal.core.preferences.PreferenceInitializer.initializeDefaultPreferences(PreferenceInitializer.java:50) at org.eclipse.core.internal.preferences.PreferenceServiceRegistryHelper$1.run(PreferenceServiceRegistryHelper.java:300) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.core.internal.preferences.PreferenceServiceRegistryHelper.runInitializer(PreferenceServiceRegistryHelper.java:303) at org.eclipse.core.internal.preferences.PreferenceServiceRegistryHelper.applyRuntimeDefaults(PreferenceServiceRegistryHelper.java:131) at org.eclipse.core.internal.preferences.PreferencesService.applyRuntimeDefaults(PreferencesService.java:368) at org.eclipse.core.internal.preferences.DefaultPreferences.applyRuntimeDefaults(DefaultPreferences.java:166) at org.eclipse.core.internal.preferences.DefaultPreferences.load(DefaultPreferences.java:237) at org.eclipse.core.internal.preferences.EclipsePreferences.create(EclipsePreferences.java:410) at org.eclipse.core.internal.preferences.EclipsePreferences.internalNode(EclipsePreferences.java:663) at org.eclipse.core.internal.preferences.EclipsePreferences.node(EclipsePreferences.java:805) at org.eclipse.core.internal.preferences.AbstractScope.getNode(AbstractScope.java:38) at org.eclipse.core.runtime.preferences.DefaultScope.getNode(DefaultScope.java:76) at org.eclipse.ui.preferences.ScopedPreferenceStore.getDefaultPreferences(ScopedPreferenceStore.java:250) at org.eclipse.ui.preferences.ScopedPreferenceStore.getPreferenceNodes(ScopedPreferenceStore.java:285) at org.eclipse.ui.preferences.ScopedPreferenceStore.internalGet(ScopedPreferenceStore.java:475) at org.eclipse.ui.preferences.ScopedPreferenceStore.getBoolean(ScopedPreferenceStore.java:387) at org.eclipse.wb.internal.core.editor.describer.JavaSourceUiDescriber.isGUISource(JavaSourceUiDescriber.java:65) at org.eclipse.wb.internal.core.editor.describer.JavaSourceUiDescriber.describe(JavaSourceUiDescriber.java:52) at org.eclipse.core.internal.content.ContentTypeCatalog.describe(ContentTypeCatalog.java:218) at org.eclipse.core.internal.content.ContentTypeCatalog.collectMatchingByContents(ContentTypeCatalog.java:190) at org.eclipse.core.internal.content.ContentTypeCatalog.internalFindContentTypesFor(ContentTypeCatalog.java:403) at org.eclipse.core.internal.content.ContentTypeCatalog.internalFindContentTypesFor(ContentTypeCatalog.java:450) at org.eclipse.core.internal.content.ContentTypeCatalog.getDescriptionFor(ContentTypeCatalog.java:346) at org.eclipse.core.internal.content.ContentTypeCatalog.getDescriptionFor(ContentTypeCatalog.java:360) at org.eclipse.core.internal.content.ContentTypeMatcher.getDescriptionFor(ContentTypeMatcher.java:86) at org.eclipse.core.internal.resources.ContentDescriptionManager.readDescription(ContentDescriptionManager.java:445) at org.eclipse.core.internal.resources.ContentDescriptionManager.getDescriptionFor(ContentDescriptionManager.java:355) at org.eclipse.core.internal.resources.File.internalGetCharset(File.java:246) at org.eclipse.core.internal.resources.File.getCharset(File.java:207) at org.eclipse.core.internal.resources.File.getCharset(File.java:194) at org.eclipse.jdt.internal.core.util.Util.getResourceContentsAsCharArray(Util.java:1156) at org.eclipse.jdt.internal.core.CompilationUnit.openBuffer(CompilationUnit.java:1157) at org.eclipse.jdt.internal.core.CompilationUnit.buildStructure(CompilationUnit.java:116) at org.eclipse.jdt.internal.core.Openable.generateInfos(Openable.java:258) at org.eclipse.jdt.internal.core.SourceRefElement.generateInfos(SourceRefElement.java:107) at org.eclipse.jdt.internal.core.JavaElement.openWhenClosed(JavaElement.java:518) at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:255) at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:241) at org.eclipse.jdt.internal.core.JavaElement.exists(JavaElement.java:159) at org.eclipse.jdt.internal.core.CompilationUnit.findPrimaryType(CompilationUnit.java:566) at org.eclipse.jem.internal.adapters.jdom.JavaReflectionSynchronizer.getFullNameFromElement(JavaReflectionSynchronizer.java:210) at org.eclipse.jem.internal.adapters.jdom.JavaReflectionSynchronizer.processJavaElementChanged(JavaReflectionSynchronizer.java:107) at org.eclipse.jem.workbench.utility.JavaModelListener.processDelta(JavaModelListener.java:125) at org.eclipse.jem.internal.adapters.jdom.JavaReflectionSynchronizer.processDelta(JavaReflectionSynchronizer.java:343) at org.eclipse.jem.workbench.utility.JavaModelListener.processChildren(JavaModelListener.java:78) at org.eclipse.jem.internal.adapters.jdom.JavaReflectionSynchronizer.processChildren(JavaReflectionSynchronizer.java:336) at org.eclipse.jem.workbench.utility.JavaModelListener.processJavaElementChanged(JavaModelListener.java:204) at org.eclipse.jem.internal.adapters.jdom.JavaReflectionSynchronizer.processJavaElementChanged(JavaReflectionSynchronizer.java:179) at org.eclipse.jem.workbench.utility.JavaModelListener.processDelta(JavaModelListener.java:122) at org.eclipse.jem.internal.adapters.jdom.JavaReflectionSynchronizer.processDelta(JavaReflectionSynchronizer.java:343) at org.eclipse.jem.workbench.utility.JavaModelListener.processChildren(JavaModelListener.java:78) at org.eclipse.jem.internal.adapters.jdom.JavaReflectionSynchronizer.processChildren(JavaReflectionSynchronizer.java:336) at org.eclipse.jem.workbench.utility.JavaModelListener.processJavaElementChanged(JavaModelListener.java:218) at org.eclipse.jem.internal.adapters.jdom.JavaReflectionSynchronizer.processJavaElementChanged(JavaReflectionSynchronizer.java:159) at org.eclipse.jem.workbench.utility.JavaModelListener.processDelta(JavaModelListener.java:119) at org.eclipse.jem.internal.adapters.jdom.JavaReflectionSynchronizer.processDelta(JavaReflectionSynchronizer.java:343) at org.eclipse.jem.workbench.utility.JavaModelListener.processChildren(JavaModelListener.java:78) at org.eclipse.jem.internal.adapters.jdom.JavaReflectionSynchronizer.processChildren(JavaReflectionSynchronizer.java:336) at org.eclipse.jem.internal.adapters.jdom.JavaReflectionSynchronizer.processJavaElementChanged(JavaReflectionSynchronizer.java:128) at org.eclipse.jem.workbench.utility.JavaModelListener.processDelta(JavaModelListener.java:116) at org.eclipse.jem.internal.adapters.jdom.JavaReflectionSynchronizer.processDelta(JavaReflectionSynchronizer.java:343) at org.eclipse.jem.workbench.utility.JavaModelListener.processChildren(JavaModelListener.java:78) at org.eclipse.jem.internal.adapters.jdom.JavaReflectionSynchronizer.processChildren(JavaReflectionSynchronizer.java:336) at org.eclipse.jem.workbench.utility.JavaModelListener.processJavaElementChanged(JavaModelListener.java:176) at org.eclipse.jem.workbench.utility.JavaModelListener.processDelta(JavaModelListener.java:113) at org.eclipse.jem.internal.adapters.jdom.JavaReflectionSynchronizer.processDelta(JavaReflectionSynchronizer.java:343) at org.eclipse.jem.workbench.utility.JavaModelListener.elementChanged(JavaModelListener.java:63) at org.eclipse.jem.internal.adapters.jdom.JavaReflectionSynchronizer.elementChanged(JavaReflectionSynchronizer.java:265) at org.eclipse.jdt.internal.core.DeltaProcessor$4.run(DeltaProcessor.java:1682) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.jdt.internal.core.DeltaProcessor.notifyListeners(DeltaProcessor.java:1672) at org.eclipse.jdt.internal.core.DeltaProcessor.firePostChangeDelta(DeltaProcessor.java:1506) at org.eclipse.jdt.internal.core.DeltaProcessor.fire(DeltaProcessor.java:1482) at org.eclipse.jdt.internal.core.DeltaProcessor.resourceChanged(DeltaProcessor.java:2094) at org.eclipse.jdt.internal.core.DeltaProcessingState.resourceChanged(DeltaProcessingState.java:470) at org.eclipse.core.internal.events.NotificationManager$1.run(NotificationManager.java:291) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.core.internal.events.NotificationManager.notify(NotificationManager.java:285) at org.eclipse.core.internal.events.NotificationManager.broadcastChanges(NotificationManager.java:186) at org.eclipse.core.internal.resources.SavedState.processResourceChangeEvents(SavedState.java:77) at org.eclipse.jdt.internal.core.JavaModelManager$20.run(JavaModelManager.java:4943) at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2344) at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2326) at org.eclipse.jdt.internal.core.JavaModelManager$19.run(JavaModelManager.java:4935) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) Caused by: org.eclipse.swt.SWTException: Invalid thread access at org.eclipse.swt.SWT.error(SWT.java:4361) at org.eclipse.swt.SWT.error(SWT.java:4276) at org.eclipse.swt.SWT.error(SWT.java:4247) at org.eclipse.swt.widgets.Display.error(Display.java:1258) at org.eclipse.swt.widgets.Display.checkDevice(Display.java:764) at org.eclipse.swt.widgets.Display.getSystemFont(Display.java:2459) at org.eclipse.jface.preference.PreferenceConverter.(PreferenceConverter.java:84) ... 86 more
We tried different things to revive the workspaces, but the real solution is simple. To fix your workspace, simply delete the file “

