[ https://issues.apache.org/jira/browse/IVYDE-351?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Carsten Pfeiffer updated IVYDE-351: ----------------------------------- Attachment: initializer.patch > SWTException in PreferenceInitializer > ------------------------------------- > > Key: IVYDE-351 > URL: https://issues.apache.org/jira/browse/IVYDE-351 > Project: IvyDE > Issue Type: Bug > Affects Versions: 2.2.0.beta1 > Reporter: Carsten Pfeiffer > Priority: Minor > Labels: easyfix, patch > Attachments: initializer.patch > > > 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. > {code} > 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) > {code} -- This message was sent by Atlassian JIRA (v6.1#6144)