Community
Participate
Working Groups
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)
There's a simple workaround: close and reopen the project. Then you can access project properties again... Seem related to bug 66490.
*** Bug 69034 has been marked as a duplicate of this bug. ***
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)
Frederic, can you do something here. This problem causes one of the last failing tests in refactoring after converting to JSL3.
*** Bug 69860 has been marked as a duplicate of this bug. ***
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...
Test case added to org.eclipse.jdt.core.tests.model.OptionTests
*** Bug 70361 has been marked as a duplicate of this bug. ***
Verified in I200409230100.
*** Bug 75230 has been marked as a duplicate of this bug. ***