File tree Expand file tree Collapse file tree
org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -526,13 +526,19 @@ public void close() throws JavaModelException {
526526 // Get cached preferences if exist
527527 JavaModelManager .PerProjectInfo perProjectInfo = JavaModelManager .getJavaModelManager ().getPerProjectInfo (this .project , false );
528528 if (perProjectInfo != null && perProjectInfo .preferences != null ) {
529- IEclipsePreferences eclipseParentPreferences = (IEclipsePreferences ) perProjectInfo .preferences .parent ();
530- if (this .preferencesNodeListener != null ) {
531- eclipseParentPreferences .removeNodeChangeListener (this .preferencesNodeListener );
529+ try {
530+ IEclipsePreferences eclipseParentPreferences = (IEclipsePreferences ) perProjectInfo .preferences .parent ();
531+ if (this .preferencesNodeListener != null ) {
532+ eclipseParentPreferences .removeNodeChangeListener (this .preferencesNodeListener );
533+ this .preferencesNodeListener = null ;
534+ }
535+ if (this .preferencesChangeListener != null ) {
536+ perProjectInfo .preferences .removePreferenceChangeListener (this .preferencesChangeListener );
537+ this .preferencesChangeListener = null ;
538+ }
539+ } catch (IllegalStateException e ) {
540+ // Ignore, the preferences have already been removed
532541 this .preferencesNodeListener = null ;
533- }
534- if (this .preferencesChangeListener != null ) {
535- perProjectInfo .preferences .removePreferenceChangeListener (this .preferencesChangeListener );
536542 this .preferencesChangeListener = null ;
537543 }
538544 }
You can’t perform that action at this time.
0 commit comments