Community
Participate
Working Groups
People may keep hold of the nodes that deal with their plug-in preferences. This can be problematic. Especially in the case of import where we clear the prefs and remove the node. People will get IllegalStateExceptions when they won't expect it. This exact scenerio might not be a problem once we re-evaluate the import/export over-write vs merge, but it is still a general issue.
This exact scenario is now happening in build I20040824. JavaCore is caching Preferences objects, and their lookups fail after an import. A shutdown and restart is required to get things back in order. java.lang.IllegalStateException: Preference node "org.eclipse.jdt.core" has been removed. at org.eclipse.core.internal.preferences.EclipsePreferences.checkRemoved(EclipsePreferences.java:142) at org.eclipse.core.internal.preferences.EclipsePreferences.internalGet(EclipsePreferences.java:481) at org.eclipse.core.internal.preferences.EclipsePreferences.get(EclipsePreferences.java:349) at org.eclipse.core.internal.preferences.PreferencesService.get(PreferencesService.java:391) at org.eclipse.jdt.core.JavaCore.getOptions(JavaCore.java:2218) at org.eclipse.jdt.internal.core.JavaProject.getOptions(JavaProject.java:1428) at org.eclipse.jdt.internal.core.search.indexing.SourceIndexer.indexDocument(SourceIndexer.java:57) at org.eclipse.jdt.internal.core.search.JavaSearchParticipant.indexDocument(JavaSearchParticipant.java:72) at org.eclipse.jdt.internal.core.search.indexing.IndexManager.indexDocument(IndexManager.java:290) at org.eclipse.jdt.internal.core.search.indexing.IndexManager$1.execute(IndexManager.java:600) at org.eclipse.jdt.internal.core.search.processing.JobManager.run(JobManager.java:368) at java.lang.Thread.run(Thread.java:534)
Should consider using pref node handles to help users?
Not going to fix for now. Its spec'd such that nodes can become invalidated.