Details
-
Bug
-
Status: Resolved
-
Minor
-
Resolution: Fixed
-
2.2.0.beta1
-
None
Description
PreferenceInitializer may be run by the framework in non-UI threads, so it cannot use the class PreferenceConverter (which uses/creates an SWT Display).
PreferenceInitializer only uses the Converter class for serializing RGB values, so we can do that directly and skip PreferenceConverter entirely.
java.lang.ExceptionInInitializerError at org.apache.ivyde.internal.eclipse.ui.preferences.PreferenceInitializer.initializeDefaultPreferences(PreferenceInitializer.java:194) at org.eclipse.core.internal.preferences.PreferenceServiceRegistryHelper$1.run(PreferenceServiceRegistryHelper.java:281) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.core.internal.preferences.PreferenceServiceRegistryHelper.runInitializer(PreferenceServiceRegistryHelper.java:284) at org.eclipse.core.internal.preferences.PreferenceServiceRegistryHelper.applyRuntimeDefaults(PreferenceServiceRegistryHelper.java:130) 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:387) at org.eclipse.core.internal.preferences.EclipsePreferences.internalNode(EclipsePreferences.java:631) at org.eclipse.core.internal.preferences.EclipsePreferences.node(EclipsePreferences.java:757) 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.apache.ivyde.internal.eclipse.cpcontainer.IvyClasspathContainerConfAdapter.convertOldRetrieveConf(IvyClasspathContainerConfAdapter.java:268) at org.apache.ivyde.internal.eclipse.cpcontainer.IvyClasspathContainerConfAdapter.loadV1(IvyClasspathContainerConfAdapter.java:242) at org.apache.ivyde.internal.eclipse.cpcontainer.IvyClasspathContainerConfAdapter.load(IvyClasspathContainerConfAdapter.java:71) at org.apache.ivyde.eclipse.cp.IvyClasspathContainerConfiguration.<init>(IvyClasspathContainerConfiguration.java:95) at org.apache.ivyde.internal.eclipse.cpcontainer.IvyClasspathContainerImpl.<init>(IvyClasspathContainerImpl.java:81) at org.apache.ivyde.internal.eclipse.cpcontainer.IvyClasspathInitializer.initialize(IvyClasspathInitializer.java:114) at org.eclipse.jdt.internal.core.JavaModelManager.initializeContainer(JavaModelManager.java:2841) at org.eclipse.jdt.internal.core.JavaModelManager$11.run(JavaModelManager.java:2747) at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2344) at org.eclipse.jdt.internal.core.JavaModelManager.initializeAllContainers(JavaModelManager.java:2787) at org.eclipse.jdt.internal.core.JavaModelManager.getClasspathContainer(JavaModelManager.java:1871) at org.eclipse.jdt.core.JavaCore.getClasspathContainer(JavaCore.java:2811) at org.eclipse.jdt.internal.core.JavaProject.resolveClasspath(JavaProject.java:2689) at org.eclipse.jdt.internal.core.JavaProject.resolveClasspath(JavaProject.java:2853) at org.eclipse.jdt.internal.core.ClasspathChange.generateDelta(ClasspathChange.java:219) at org.eclipse.jdt.internal.core.DeltaProcessor.resourceChanged(DeltaProcessor.java:2040) 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:4919) 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:4911) 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:4282) at org.eclipse.swt.SWT.error(SWT.java:4197) at org.eclipse.swt.SWT.error(SWT.java:4168) at org.eclipse.swt.widgets.Display.error(Display.java:1210) at org.eclipse.swt.widgets.Display.checkDevice(Display.java:752) at org.eclipse.swt.widgets.Display.getSystemFont(Display.java:2323) at org.eclipse.jface.preference.PreferenceConverter.<clinit>(PreferenceConverter.java:84)
Attachments
Attachments
Issue Links
- relates to
-
IVYDE-313 org.eclipse.swt.SWTException: Invalid thread access with Eclipse Juno
- Resolved