# HG changeset patch # User timkelly # Date 1285261713 18000 # Node ID 32ca30af5f6b2d245269d2db5c346ce86892437c # Parent 90b9cb908a6b42749c68c52e4363c638c7fa40f6 ed's fix to remove job to save language data cache. was causing more problems than it fixed. diff -r 90b9cb908a6b -r 32ca30af5f6b builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/CarbideLanguageData.java --- a/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/CarbideLanguageData.java Thu Sep 23 10:16:37 2010 -0500 +++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/CarbideLanguageData.java Thu Sep 23 12:08:33 2010 -0500 @@ -95,8 +95,6 @@ private final String ENTRY_DELIMTER = ";"; //$NON-NLS-1$ private final String LOCAL_MARKER = "[LOCAL]"; //$NON-NLS-1$ - private Job persistCacheJob; - public CarbideLanguageData(ICarbideBuildConfiguration config) { carbideBuildConfig = config; @@ -149,40 +147,7 @@ } if (cacheBuilt) { - - // Bug 12078: persisting the cache requires setting the project - // description, or else it gets thrown away (!). - // But we must save the cache in a workspace job because this code - // is usually called when the project description is being read for - // the first time (thus saving just throws an exception). - - // Bug 12139: oops, this job was running over and over again without end - synchronized (this) { - if (persistCacheJob == null) { - persistCacheJob = new Job("Saving Carbide indexer cache for " + carbideBuildConfig.toString()) { - - @Override - protected IStatus run(IProgressMonitor monitor) { - persistCache(monitor); - - return Status.OK_STATUS; - } - - }; - persistCacheJob.setRule(ResourcesPlugin.getWorkspace().getRoot()); - persistCacheJob.setSystem(true); - persistCacheJob.setPriority(Job.LONG); - } - - // don't reschedule if it has not run yet - if (persistCacheJob.getResult() == null || persistCacheJob.getState() == Job.NONE) { - persistCacheJob.schedule(5000); - // This scheduling delay is a gross HACK: WorkspaceModelProvider#saveStorage() - // has had and still has problems with deadlocks on saving - // model content. This job exacerbates it unless we wait a - // while before locking the workspace. - } - } + persistCache(); } switch(kind) { @@ -375,10 +340,8 @@ cacheTimestamp = System.currentTimeMillis(); } - private void persistCache(IProgressMonitor monitor) { + private void persistCache() { // persist the cache between IDE launches. - if (!isValid()) - return; try { ICarbideProjectInfo carbideProject = carbideBuildConfig.getCarbideProject(); if (carbideProject == null) @@ -419,8 +382,6 @@ filesCacheValue += file.getAbsolutePath() + ENTRY_DELIMTER; } storage.setAttribute(FILES_CACHE, filesCacheValue); - - CoreModel.getDefault().setProjectDescription(project, projDes, true, monitor); } } } catch (CoreException e) {