if (!fPreferenceListeners.isEmpty()) { IPreferenceStore store= getPreferenceStore(); for (Iterator it= fPreferenceListeners.iterator(); it.hasNext();) { IPropertyChangeListener listener= (IPropertyChangeListener) it.next(); store.removePropertyChangeListener(listener); } fPreferenceListeners.clear(); }
	public void stop(BundleContext context) throws Exception {		try {			if (fImageDescriptorRegistry != null)				fImageDescriptorRegistry.dispose();						if (fASTProvider != null) {				fASTProvider.dispose();				fASTProvider= null;			}						if (fWorkingCopyManager != null) {				fWorkingCopyManager.shutdown();				fWorkingCopyManager= null;			}						if (fCompilationUnitDocumentProvider != null) {				fCompilationUnitDocumentProvider.shutdown();				fCompilationUnitDocumentProvider= null;			}								if (fJavaTextTools != null) {				fJavaTextTools.dispose();				fJavaTextTools= null;			}						if (fTypeFilter != null) {				fTypeFilter.dispose();				fTypeFilter= null;			}						if (fContentAssistHistory != null) {				ContentAssistHistory.store(fContentAssistHistory, getPluginPreferences(), PreferenceConstants.CODEASSIST_LRU_HISTORY);				fContentAssistHistory= null;			}						uninstallPreferenceStoreBackwardsCompatibility();						if (!fPreferenceListeners.isEmpty()) {				IPreferenceStore store= getPreferenceStore();				for (Iterator it= fPreferenceListeners.iterator(); it.hasNext();) {					IPropertyChangeListener listener= (IPropertyChangeListener) it.next();					store.removePropertyChangeListener(listener);				}				fPreferenceListeners.clear();			}						if (fMembersOrderPreferenceCache != null) {				fMembersOrderPreferenceCache.dispose();				fMembersOrderPreferenceCache= null;			}						TypeInfoHistory.getDefault().save();						// must add here to guarantee that it is the first in the listener list			OpenTypeHistory.shutdown();		} finally {				super.stop(context);		}	}