Bug 68993 - [Preferences] IAE when opening project preferences
Summary: [Preferences] IAE when opening project preferences
Status: VERIFIED FIXED
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Core (show other bugs)
Version: 3.0   Edit
Hardware: PC Windows XP
: P3 normal (vote)
Target Milestone: 3.1 M2   Edit
Assignee: Frederic Fusier CLA
QA Contact:
URL:
Whiteboard:
Keywords:
: 69034 69860 70361 75230 (view as bug list)
Depends on:
Blocks:
 
Reported: 2004-06-30 08:00 EDT by Frederic Fusier CLA
Modified: 2004-09-29 03:24 EDT (History)
6 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Frederic Fusier CLA 2004-06-30 08:00:10 EDT
Using 3.0 + Cheetah06.

Here's scenario to reproduce this IAE:
1- Create a project
2- Open project preferences and in compiler page, set some specific value by 
   selecting "Use project settings" button.
3- Click on OK to validate properties changes (do not rebuild project)
4- Reopen project properties and remove project compiler preferences by 
   selecting "Use workspace settings".
5- Click on OK to validate properties changes (do not rebuild project)
6- Try to reopen properties => you get error dialog "Could Not Accept Changes":
   "The currently displayed page contains invalid values"!

Looking at error log, I got following stack trace:
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.jdt.internal.core.JavaProject.getOption(JavaProject.java:1433)
	at
org.eclipse.jdt.internal.core.ClasspathEntry.validateClasspathEntry(ClasspathEntry.java:1152)
	at
org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath(JavaProject.java:1896)
	at
org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath(JavaProject.java:1839)
	at
org.eclipse.jdt.internal.core.DeltaProcessor.updateClasspathMarkers(DeltaProcessor.java:2106)
	at
org.eclipse.jdt.internal.core.DeltaProcessor.updateClasspathMarkers(DeltaProcessor.java:2136)
	at
org.eclipse.jdt.internal.core.DeltaProcessor.updateClasspathMarkers(DeltaProcessor.java:2152)
	at
org.eclipse.jdt.internal.core.DeltaProcessor.resourceChanged(DeltaProcessor.java:1856)
	at
org.eclipse.jdt.internal.core.DeltaProcessingState.resourceChanged(DeltaProcessingState.java:414)
	at
org.eclipse.core.internal.events.NotificationManager$2.run(NotificationManager.java:283)
	at
org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java:615)
	at org.eclipse.core.runtime.Platform.run(Platform.java:747)
	at
org.eclipse.core.internal.events.NotificationManager.notify(NotificationManager.java:277)
	at
org.eclipse.core.internal.events.NotificationManager.broadcastChanges(NotificationManager.java:151)
	at
org.eclipse.core.internal.events.AutoBuildJob.broadcastChanges(AutoBuildJob.java:78)
	at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:153)
	at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:212)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:66)
Comment 1 Frederic Fusier CLA 2004-06-30 08:01:51 EDT
There's a simple workaround: close and reopen the project.
Then you can access project properties again...

Seem related to bug 66490.
Comment 2 Frederic Fusier CLA 2004-06-30 12:13:14 EDT
*** Bug 69034 has been marked as a duplicate of this bug. ***
Comment 3 Michael Fraenkel CLA 2004-07-12 09:49:34 EDT
Looks like there are variants of this problem.  I followed the same steps and 
got the following stack dump instead.

java.lang.IllegalStateException: Preference node "org.eclipse.jdt.core" has 
been removed.
	at java.lang.Throwable.<init>(Throwable.java)
	at java.lang.Throwable.<init>(Throwable.java)
	at 
org.eclipse.core.internal.preferences.EclipsePreferences.checkRemoved
(EclipsePreferences.java)
	at org.eclipse.core.internal.preferences.EclipsePreferences.keys
(EclipsePreferences.java:575)
	at org.eclipse.jdt.internal.core.JavaProject.getOptions
(JavaProject.java:1435)
	at org.eclipse.jdt.internal.core.CompilationUnitProblemFinder.process
(CompilationUnitProblemFinder.java:151)
	at org.eclipse.jdt.internal.core.CompilationUnitProblemFinder.process
(CompilationUnitProblemFinder.java:206)
	at 
org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation.executeOperation
(ReconcileWorkingCopyOperation.java:76)
	at org.eclipse.jdt.internal.core.JavaModelOperation.run
(JavaModelOperation.java:700)
	at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation
(JavaModelOperation.java:739)
	at org.eclipse.jdt.internal.core.CompilationUnit.reconcile
(CompilationUnit.java:1095)
	at 
org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile
(JavaReconcilingStrategy.java:88)
	at 
org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile
(JavaReconcilingStrategy.java:129)
	at 
org.eclipse.jdt.internal.ui.text.CompositeReconcilingStrategy.reconcile
(CompositeReconcilingStrategy.java:86)
	at 
org.eclipse.jdt.internal.ui.text.JavaCompositeReconcilingStrategy.reconcile
(JavaCompositeReconcilingStrategy.java:96)
	at org.eclipse.jface.text.reconciler.MonoReconciler.process
(MonoReconciler.java:75)
	at org.eclipse.jdt.internal.ui.text.JavaReconciler.process
(JavaReconciler.java)
	at 
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run
(AbstractReconciler.java:204)
Comment 4 Dirk Baeumer CLA 2004-07-12 11:12:24 EDT
Frederic,

can you do something here. This problem causes one of the last failing tests 
in refactoring after converting to JSL3.
Comment 5 Frederic Fusier CLA 2004-07-12 13:11:43 EDT
*** Bug 69860 has been marked as a duplicate of this bug. ***
Comment 6 Frederic Fusier CLA 2004-07-12 18:00:29 EDT
Fixed.

Added a listener to java project preferences parent which resets the java model
manager cached when java project node is removed.

[jdt-core-internal]
Changes done in JavaProject, methods getEclipsePreferences()and setOptions(Map).

All JDT/UI refactoring tests pass using build N20040712 + this fix.
I will add specific JDT/Core test cases tomorrow...
Comment 7 Frederic Fusier CLA 2004-07-14 14:24:40 EDT
Test case added to org.eclipse.jdt.core.tests.model.OptionTests
Comment 8 Frederic Fusier CLA 2004-07-19 12:57:44 EDT
*** Bug 70361 has been marked as a duplicate of this bug. ***
Comment 9 David Audel CLA 2004-09-23 11:56:13 EDT
Verified in I200409230100.
Comment 10 Frederic Fusier CLA 2004-09-29 03:24:23 EDT
*** Bug 75230 has been marked as a duplicate of this bug. ***