diff --git a/core/org.eclipse.cdt.core/browser/ChangeLog-browser b/core/org.eclipse.cdt.core/browser/ChangeLog-browser index 48c51865603..11bef292262 100644 --- a/core/org.eclipse.cdt.core/browser/ChangeLog-browser +++ b/core/org.eclipse.cdt.core/browser/ChangeLog-browser @@ -1,3 +1,7 @@ +2005-03-9 Chris Wiebe + temporary fix for type parser timeout + * browser/org/eclipse/cdt/core/browser/cache/TypeParser.java + 2005-03-13 Bogdan Gheorghe Updated references to IndexManager to reflect new multi-indexer framework. * browser/org/eclipse/cdt/internal/core/browser/cache/IndexerDependencies.java diff --git a/core/org.eclipse.cdt.core/browser/org/eclipse/cdt/internal/core/browser/cache/TypeParser.java b/core/org.eclipse.cdt.core/browser/org/eclipse/cdt/internal/core/browser/cache/TypeParser.java index 51522dff292..4294c54a80b 100644 --- a/core/org.eclipse.cdt.core/browser/org/eclipse/cdt/internal/core/browser/cache/TypeParser.java +++ b/core/org.eclipse.cdt.core/browser/org/eclipse/cdt/internal/core/browser/cache/TypeParser.java @@ -926,11 +926,30 @@ public class TypeParser implements ISourceElementRequestor { public CodeReader createReader(String finalPath, Iterator workingCopies) { return ParserUtil.createReader(finalPath, workingCopies); } + + private static final int DEFAULT_PARSER_TIMEOUT = 30; public int getParserTimeout() { - // here we just reuse the indexer timeout - String timeOut = CCorePlugin.getDefault().getPluginPreferences().getString("CDT_INDEXER_TIMEOUT"); - return Integer.valueOf(timeOut).intValue(); + //TODO we shouldn't be trying to access the indexer prefs + //TODO clean this up + int timeout = 0; + try { + // here we just reuse the indexer timeout + String str = CCorePlugin.getDefault().getPluginPreferences().getString("CDT_INDEXER_TIMEOUT"); //$NON-NLS-1$ + if (str != null && str.length() > 0) { + int val = Integer.valueOf(str).intValue(); + if (val > 0) { + timeout = val; + } + } + } catch (NumberFormatException e) { + // do nothing + } + + if (timeout == 0) { + timeout = DEFAULT_PARSER_TIMEOUT; + } + return timeout; } }