From 563080839473ad13b7b58b8c5e4d89a85d59f3d5 Mon Sep 17 00:00:00 2001 From: Bogdan Gheorghe Date: Tue, 25 May 2004 14:10:47 +0000 Subject: [PATCH] Added some checks to the indexer timeout field to make sure a sane value is entered --- .../WorkInProgressPreferencePage.java | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/WorkInProgressPreferencePage.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/WorkInProgressPreferencePage.java index ab126cbdd7a..eb128b10faf 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/WorkInProgressPreferencePage.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/WorkInProgressPreferencePage.java @@ -50,9 +50,12 @@ public class WorkInProgressPreferencePage extends PreferencePage private Button fBackgroundTypeCacheEnabled; private Button fEditorCorrection; + protected OverlayPreferenceStore fOverlayStore; private Text fTextControl; + private static final String TIMEOUT_VALUE = "20000"; //$NON-NLS-1$ + public WorkInProgressPreferencePage(){ setPreferenceStore(CUIPlugin.getDefault().getPreferenceStore()); fOverlayStore = createOverlayStore(); @@ -230,13 +233,23 @@ public class WorkInProgressPreferencePage extends PreferencePage * @see IPreferencePage#performOk() */ public boolean performOk() { - fOverlayStore.setValue(SourceIndexer.CDT_INDEXER_TIMEOUT, fTextControl.getText()); + + String timeOut = fTextControl.getText(); + try{ + Integer timeInt = new Integer(timeOut); + } + catch (NumberFormatException ex){ + timeOut = TIMEOUT_VALUE; + } + + fOverlayStore.setValue(SourceIndexer.CDT_INDEXER_TIMEOUT, timeOut); fOverlayStore.propagate(); // Store IProblem Marker value in CCorePlugin Preferences Preferences prefs = CCorePlugin.getDefault().getPluginPreferences(); - prefs.setValue(SourceIndexer.CDT_INDEXER_TIMEOUT,fOverlayStore.getString(SourceIndexer.CDT_INDEXER_TIMEOUT)); + + prefs.setValue(SourceIndexer.CDT_INDEXER_TIMEOUT,timeOut); prefs.setValue(AllTypesCache.ENABLE_BACKGROUND_TYPE_CACHE, fOverlayStore.getString(AllTypesCache.ENABLE_BACKGROUND_TYPE_CACHE)); @@ -253,7 +266,7 @@ public class WorkInProgressPreferencePage extends PreferencePage public static void initDefaults(IPreferenceStore store) { store.setDefault(CSearchPage.EXTERNALMATCH_ENABLED, false); store.setDefault(CSearchPage.EXTERNALMATCH_VISIBLE, 0); - store.setDefault(SourceIndexer.CDT_INDEXER_TIMEOUT, "20000"); //$NON-NLS-1$ + store.setDefault(SourceIndexer.CDT_INDEXER_TIMEOUT,TIMEOUT_VALUE); store.setDefault(AllTypesCache.ENABLE_BACKGROUND_TYPE_CACHE, true); }