Bug 463035 - ISE in EclipsePreferences.checkRemoved (200)
Summary: ISE in EclipsePreferences.checkRemoved (200)
Status: NEW
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Core (show other bugs)
Version: 4.4.1   Edit
Hardware: All All
: P3 normal with 1 vote (vote)
Target Milestone: ---   Edit
Assignee: Jay Arthanareeswaran CLA
QA Contact:
URL:
Whiteboard: stalebug
Keywords:
Depends on:
Blocks:
 
Reported: 2015-03-25 02:24 EDT by EPP Error Reports CLA
Modified: 2022-11-17 10:19 EST (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 EPP Error Reports CLA 2015-03-25 02:24:33 EDT
The following incident was reported via the automated error reporting:


    code:                   2
    plugin:                 org.eclipse.core.resources_3.9.1.v20140825-1431
    message:                Problems occurred when invoking code from plug-in: "org.eclipse.core.resources".
    fingerprint:            319647f6
    exception class:        java.lang.IllegalStateException
    exception message:      Preference node "org.eclipse.jdt.core" has been removed.
    number of children:     0
    
    java.lang.IllegalStateException: Preference node "org.eclipse.jdt.core" has been removed.
    at org.eclipse.core.internal.preferences.EclipsePreferences.checkRemoved(EclipsePreferences.java:200)
    at org.eclipse.core.internal.preferences.EclipsePreferences.parent(EclipsePreferences.java:876)
    at org.eclipse.jdt.internal.core.JavaProject.close(JavaProject.java:480)
    at org.eclipse.jdt.internal.core.ClasspathChange.generateDelta(ClasspathChange.java:261)
    at org.eclipse.jdt.internal.core.DeltaProcessor.resourceChanged(DeltaProcessor.java:2065)
    at org.eclipse.jdt.internal.core.DeltaProcessingState.resourceChanged(DeltaProcessingState.java:477)
    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:149)
    at org.eclipse.core.internal.resources.Workspace.broadcastPostChange(Workspace.java:378)
    at org.eclipse.core.internal.resources.Workspace.endOperation(Workspace.java:1498)
    at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:45)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
   
  

General Information:

    reported-by:      Marcel Bruch
    anonymous-id:     385b7d4a-7307-3cb4-8e18-f3645fdd9b3a
    eclipse-build-id: 4.4.1.M20140925-0400
    eclipse-product:  org.eclipse.epp.package.standard.product
    operating system: MacOSX 10.10.0 (x86_64) - cocoa
    jre-version:      1.8.0_20-b26

The following plug-ins were present on the execution stack (*):
    1. org.eclipse.core.jobs_3.6.0.v20140424-0053
    2. org.eclipse.core.resources_3.9.1.v20140825-1431
    3. org.eclipse.core.runtime_3.10.0.v20140318-2214
    4. org.eclipse.jdt.core_3.10.0.v20140902-0626
    5. org.eclipse.jdt_3.10.0.v20140925-0400

Please note that:
* Messages, stacktraces, and nested status objects may be shortened.
* Bug fields like status, resolution, and whiteboard are sent
  back to reporters.
* The list of present bundles and their respective versions was
  calculated by package naming heuristics. This may or may not reflect reality.

Other Resources:
* Report: https://dev.eclipse.org/recommenders/committers/confess/#/problems/54c4ef9ebee810030da07209  
* Manual: https://dev.eclipse.org/recommenders/community/confess/#/guide


Thank you for your assistance.
Your friendly error-reports-inbox.
Comment 1 Alexander Hofbauer CLA 2015-09-03 05:12:36 EDT
Happens every time here I checkout a git branch with a slightly different layout, on git rebase or pulls.
Comment 2 Jay Arthanareeswaran CLA 2015-09-03 06:20:22 EDT
This looks like a case of the JavaProject holding onto its preferences a bit longer. In this particular case, the project is being closed anyway. So, I think we should just expect the IllegalStateException and ignore it here.
Comment 3 Daniel Mladek CLA 2016-01-27 21:59:25 EST
In my case it also happens each time I switch Git branch (using Source Tree).
Comment 4 Martin Maldonado CLA 2016-01-28 15:07:57 EST
I have no connection to GIT or SVN on this Eclipse. In my case it happens every time I do a File Search without refreshing my project directories. I think it should ask for a refresh before searching or doing some actions.
To be concrete:
1) I change/delete/move some file from my projects OUTSIDE of Eclipse.
2) I do a search.
3) When it searches through the file I've changed/deleted/moved it throws this error code.

I hope this comment helps, thank you for this amazing IDE!
Comment 5 Jay Arthanareeswaran CLA 2016-04-05 03:47:24 EDT
Sorry, I have to move this out of 4.6.
Comment 6 Carsten Reckord CLA 2016-04-28 09:11:01 EDT
Here's a different stack trace for what I believe is the same problem:

java.lang.IllegalStateException: Preference node "org.eclipse.jdt.core" has been removed.
	at org.eclipse.core.internal.preferences.EclipsePreferences.checkRemoved(EclipsePreferences.java:200)
	at org.eclipse.core.internal.resources.ProjectPreferences.internalGet(ProjectPreferences.java:429)
	at org.eclipse.core.internal.preferences.EclipsePreferences.get(EclipsePreferences.java:484)
	at org.eclipse.jdt.internal.core.JavaModelManager.getOption(JavaModelManager.java:2118)
	at org.eclipse.jdt.internal.core.JavaProject.getOption(JavaProject.java:1657)
	at org.eclipse.jdt.internal.core.JavaModelManager.determineIfOnClasspath(JavaModelManager.java:1041)
	at org.eclipse.jdt.internal.core.JavaModelManager.create(JavaModelManager.java:934)
	at org.eclipse.jdt.internal.core.JavaModelManager.create(JavaModelManager.java:864)
	at org.eclipse.jdt.core.JavaCore.create(JavaCore.java:3177)
	at org.eclipse.jdt.ui.StandardJavaElementContentProvider.internalGetParent(StandardJavaElementContentProvider.java:469)
	at org.eclipse.jdt.internal.ui.packageview.PackageExplorerContentProvider.internalGetParent(PackageExplorerContentProvider.java:403)
	at org.eclipse.jdt.ui.StandardJavaElementContentProvider.getParent(StandardJavaElementContentProvider.java:251)
	at org.eclipse.jdt.internal.ui.packageview.WorkingSetAwareContentProvider.getParent(WorkingSetAwareContentProvider.java:195)
	at org.eclipse.jface.viewers.AbstractTreeViewer.getParentElement(AbstractTreeViewer.java:1707)

I get this from the Package Explorer - and similar traces from the compiler or when trying to use the editor - all the time these days when I switch between different branches that have changes to project-specific preferences. I usually use command-line git to switch branches, so maybe the fact that I have "Refresh on access" and "Refresh using native hooks" enabled could factor into this as well.

The effect is quite severe: The IDE becomes practically unusable, and the only sensible fix is to completely restart it - which is a real pain when you have a large workspace and have to do that on every other branch switch. With a healthy mix of support and feature development work, I currently have to do this at least once or twice a day.

From a quick glance at the affected code, I would assume that it's a concurrency issue between the code trying to read from a preference node, and a resource refresh happening on a different thread that affects the preference model. I guess introducing synchronization here could have a lot of consequences. But wouldn't it be easily possible to wrap the handful of code sections that read those preferences so they refresh the preference nodes on error and retry the operation?
Comment 7 Manoj N Palat CLA 2018-05-21 06:07:17 EDT
Bulk move out of 4.8
Comment 8 Eclipse Genie CLA 2020-09-17 17:35:15 EDT
This bug hasn't had any activity in quite some time. Maybe the problem got resolved, was a duplicate of something else, or became less pressing for some reason - or maybe it's still relevant but just hasn't been looked at yet.

If you have further information on the current state of the bug, please add it. The information can be, for example, that the problem still occurs, that you still want the feature, that more information is needed, or that the bug is (for whatever reason) no longer relevant.

--
The automated Eclipse Genie.
Comment 9 Eclipse Genie CLA 2022-11-17 10:19:02 EST
This bug hasn't had any activity in quite some time. Maybe the problem got resolved, was a duplicate of something else, or became less pressing for some reason - or maybe it's still relevant but just hasn't been looked at yet.

If you have further information on the current state of the bug, please add it. The information can be, for example, that the problem still occurs, that you still want the feature, that more information is needed, or that the bug is (for whatever reason) no longer relevant.

--
The automated Eclipse Genie.