[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[cdt-patch] Indexer deadlock fixes
|
Here's a patch to take care of Bugs
45324 (IDE hangs up after running search ) and 44366 (Endless loop in dependency
checker). Both problems had to do with WorkspaceLocks:
44366: It was possible to create a deadlock
in the dependency calculator when calulating which files to reindex.
Solution: Moved off all depedency caluclations
to the Indexer thread, created a new UpdateDependency job
45324: Search would freeze under certain
scenarios (caused by another deadlock)
Solution: Modified CSearchOperation
to only lock the workspace when tagging resources with markers
AutomationSuite run on Windows and Linux.
Patch should be applied to 1.2 and Head.
Thanks,
Bogdan
Index: ChangeLog
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/ChangeLog,v
retrieving revision 1.159
diff -u -r1.159 ChangeLog
--- ChangeLog 1 Oct 2003 22:15:34 -0000 1.159
+++ ChangeLog 24 Oct 2003 15:14:29 -0000
@@ -1,3 +1,8 @@
+2003-10-22 Bogdan Gheorghe
+
+ Modified DeltaProcessor.updateDependencies to offload dependency
+ updating to the CDT thread.
+
2003-10-01 Bogdan Gheorghe
Changed DeltaProcessor.updateDependencies to use the CModelManager
Index: dependency/ChangeLog
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/dependency/ChangeLog,v
retrieving revision 1.5
diff -u -r1.5 ChangeLog
--- dependency/ChangeLog 26 Sep 2003 17:53:31 -0000 1.5
+++ dependency/ChangeLog 24 Oct 2003 15:14:29 -0000
@@ -1,3 +1,6 @@
+2003-10-23 Bogdan Gheorghe
+ - Added UpdateDependency job
+
2003-09-25 Bogdan Gheorghe
- As a result of folding the dependency service into the indexer
have removed the following files:
Index: dependency/org/eclipse/cdt/internal/core/sourcedependency/UpdateDependency.java
===================================================================
RCS file: dependency/org/eclipse/cdt/internal/core/sourcedependency/UpdateDependency.java
diff -N dependency/org/eclipse/cdt/internal/core/sourcedependency/UpdateDependency.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ dependency/org/eclipse/cdt/internal/core/sourcedependency/UpdateDependency.java 24 Oct 2003 15:14:29 -0000
@@ -0,0 +1,101 @@
+/*
+ * Created on Oct 13, 2003
+ *
+ * To change the template for this generated file go to
+ * Window>Preferences>Java>Code Generation>Code and Comments
+ */
+package org.eclipse.cdt.internal.core.sourcedependency;
+
+import org.eclipse.cdt.core.CCorePlugin;
+import org.eclipse.cdt.core.search.ICSearchConstants;
+import org.eclipse.cdt.core.search.ICSearchScope;
+import org.eclipse.cdt.core.search.SearchEngine;
+import org.eclipse.cdt.internal.core.search.PathCollector;
+import org.eclipse.cdt.internal.core.search.PatternSearchJob;
+import org.eclipse.cdt.internal.core.search.indexing.IndexManager;
+import org.eclipse.cdt.internal.core.search.matching.CSearchPattern;
+import org.eclipse.cdt.internal.core.search.processing.IJob;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.Path;
+
+/**
+ * @author bgheorgh
+ *
+ * To change the template for this generated type comment go to
+ * Window>Preferences>Java>Code Generation>Code and Comments
+ */
+public class UpdateDependency implements IJob {
+ PathCollector pathCollector;
+ IResource resource;
+
+ /**
+ * @param resource
+ */
+ public UpdateDependency(IResource resource) {
+ this.resource = resource;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.search.processing.IJob#belongsTo(java.lang.String)
+ */
+ public boolean belongsTo(String jobFamily) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.search.processing.IJob#cancel()
+ */
+ public void cancel() {
+ // TODO Auto-generated method stub
+
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.search.processing.IJob#execute(org.eclipse.core.runtime.IProgressMonitor)
+ */
+ public boolean execute(IProgressMonitor progress) {
+ PathCollector pathCollector = new PathCollector();
+ //SubProgressMonitor subMonitor = (progressMonitor == null ) ? null : new SubProgressMonitor( progressMonitor, 5 );
+ ICSearchScope scope = SearchEngine.createWorkspaceScope();
+ CSearchPattern pattern = CSearchPattern.createPattern(resource.getLocation().toOSString(),ICSearchConstants.INCLUDE, ICSearchConstants.REFERENCES,ICSearchConstants.EXACT_MATCH,true);
+ IndexManager indexManager = CCorePlugin.getDefault().getCoreModel().getIndexManager();
+ indexManager.performConcurrentJob(
+ new PatternSearchJob(
+ (CSearchPattern) pattern,
+ scope,
+ pathCollector,
+ indexManager
+ ),
+ ICSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
+ null,
+ this );
+
+ String[] iPath = pathCollector.getPaths();
+ for (int i=0;i<iPath.length; i++){
+ IPath pathToReindex = new Path(iPath[i]);
+ IWorkspaceRoot workRoot = resource.getWorkspace().getRoot();
+ IFile fileToReindex = workRoot.getFile(pathToReindex);
+
+ if (fileToReindex!=null && fileToReindex.exists() ) {
+// if (VERBOSE)
+// System.out.println("Going to reindex " + fileToReindex.getName());
+ indexManager.addSource(fileToReindex,fileToReindex.getProject().getProject().getFullPath());
+ }
+ }
+ return false;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.search.processing.IJob#isReadyToRun()
+ */
+ public boolean isReadyToRun() {
+
+ return true;
+ }
+
+}
Index: index/ChangeLog
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/index/ChangeLog,v
retrieving revision 1.24
diff -u -r1.24 ChangeLog
--- index/ChangeLog 1 Oct 2003 22:15:34 -0000 1.24
+++ index/ChangeLog 24 Oct 2003 15:14:29 -0000
@@ -1,3 +1,8 @@
+2003-10-22 Bogdan Gheorghe
+
+ Added updateDependencies() to the IndexManager to request
+ a new UpdateDependency job.
+
2003-10-01 Bogdan Gheorghe
- Modified BlockIndexOutput.addInclude to properly flush an
include block once it's full.
Index: index/org/eclipse/cdt/internal/core/search/indexing/IndexManager.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/search/indexing/IndexManager.java,v
retrieving revision 1.8
diff -u -r1.8 IndexManager.java
--- index/org/eclipse/cdt/internal/core/search/indexing/IndexManager.java 26 Sep 2003 17:53:31 -0000 1.8
+++ index/org/eclipse/cdt/internal/core/search/indexing/IndexManager.java 24 Oct 2003 15:14:29 -0000
@@ -31,8 +31,10 @@
import org.eclipse.cdt.internal.core.search.SimpleLookupTable;
import org.eclipse.cdt.internal.core.search.processing.IJob;
import org.eclipse.cdt.internal.core.search.processing.JobManager;
+import org.eclipse.cdt.internal.core.sourcedependency.UpdateDependency;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
import org.eclipse.core.resources.IWorkspace;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.IPath;
@@ -103,7 +105,6 @@
* Note: the actual operation is performed in background
*/
public void addSource(IFile resource, IPath indexedContainer){
-
if (CCorePlugin.getDefault() == null) return;
AddCompilationUnitToIndex job = new AddCompilationUnitToIndex(resource, indexedContainer, this);
if (this.awaitingJobsCount() < MAX_FILES_IN_MEMORY) {
@@ -111,6 +112,13 @@
if (!job.initializeContents()) return;
}
request(job);
+ }
+
+ public void updateDependencies(IResource resource){
+ if (CCorePlugin.getDefault() == null) return;
+ UpdateDependency job = new UpdateDependency(resource);
+
+ request(job);
}
String computeIndexName(IPath path) {
Index: model/org/eclipse/cdt/internal/core/model/DeltaProcessor.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/DeltaProcessor.java,v
retrieving revision 1.17
diff -u -r1.17 DeltaProcessor.java
--- model/org/eclipse/cdt/internal/core/model/DeltaProcessor.java 1 Oct 2003 22:15:34 -0000 1.17
+++ model/org/eclipse/cdt/internal/core/model/DeltaProcessor.java 24 Oct 2003 15:14:29 -0000
@@ -5,7 +5,6 @@
* All Rights Reserved.
*/
-import org.eclipse.cdt.core.CCorePlugin;
import org.eclipse.cdt.core.model.CModelException;
import org.eclipse.cdt.core.model.CoreModel;
import org.eclipse.cdt.core.model.IArchiveContainer;
@@ -15,20 +14,12 @@
import org.eclipse.cdt.core.model.ICModel;
import org.eclipse.cdt.core.model.ICProject;
import org.eclipse.cdt.core.model.IParent;
-import org.eclipse.cdt.core.search.ICSearchConstants;
-import org.eclipse.cdt.core.search.ICSearchScope;
-import org.eclipse.cdt.core.search.SearchEngine;
-import org.eclipse.cdt.internal.core.search.PathCollector;
-import org.eclipse.cdt.internal.core.search.PatternSearchJob;
import org.eclipse.cdt.internal.core.search.indexing.IndexManager;
-import org.eclipse.cdt.internal.core.search.matching.CSearchPattern;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.resources.IResourceDelta;
-import org.eclipse.core.resources.IWorkspaceRoot;
import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
/**
* This class is used by <code>CModelManager</code> to convert
@@ -511,35 +502,8 @@
String fileExtension = resource.getFileExtension();
if ((fileExtension != null) &&
- (isValidHeader(fileExtension)))
- {
- PathCollector pathCollector = new PathCollector();
- //SubProgressMonitor subMonitor = (progressMonitor == null ) ? null : new SubProgressMonitor( progressMonitor, 5 );
- ICSearchScope scope = SearchEngine.createWorkspaceScope();
- CSearchPattern pattern = CSearchPattern.createPattern(resource.getLocation().toOSString(),ICSearchConstants.INCLUDE, ICSearchConstants.REFERENCES,ICSearchConstants.EXACT_MATCH,true);
- IndexManager indexManager = CCorePlugin.getDefault().getCoreModel().getIndexManager();
- indexManager.performConcurrentJob(
- new PatternSearchJob(
- (CSearchPattern) pattern,
- scope,
- pathCollector,
- indexManager
- ),
- ICSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
- null );
-
- String[] iPath = pathCollector.getPaths();
- for (int i=0;i<iPath.length; i++){
- IPath pathToReindex = new Path(iPath[i]);
- IWorkspaceRoot workRoot = element.getCProject().getProject().getWorkspace().getRoot();
- IFile fileToReindex = workRoot.getFile(pathToReindex);
-
- if (fileToReindex!=null && fileToReindex.exists() ) {
- if (VERBOSE)
- System.out.println("Going to reindex " + fileToReindex.getName());
- this.indexManager.addSource(fileToReindex,fileToReindex.getProject().getProject().getFullPath());
- }
- }
+ (isValidHeader(fileExtension))){
+ indexManager.updateDependencies(resource);
}
}
Index: search/ChangeLog
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/search/ChangeLog,v
retrieving revision 1.37.2.1
diff -u -r1.37.2.1 ChangeLog
--- search/ChangeLog 9 Oct 2003 17:46:54 -0000 1.37.2.1
+++ search/ChangeLog 24 Oct 2003 15:14:30 -0000
@@ -1,3 +1,20 @@
+2003-10-23 Bogdan Gheorghe
+
+ - Added AcceptMatchOperation to get around Bug 45324. The search
+ operation is no longer a WorkspaceModifyOperation (which used to
+ lock the workspace for the duration of search). Instead, we now
+ lock the workspace only when we tag the resources with markers.
+
+ - Modified SearchEngine : we now receive a list of matches
+ from the search that we pass into the AcceptMatchOperation.
+
+ - Modified MatchLocator to add matches to passed in list instead
+ of reporting them right away
+
+ - Modified JobManager: -added in jobToIgnore parm to unblock dependency
+ jobs
+
+
2003-10-06 Bogdan Gheorghe
- added createCFileSearchScope() to SearchEngine.java to improve
code complete performance
Index: search/org/eclipse/cdt/core/search/SearchEngine.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/search/org/eclipse/cdt/core/search/SearchEngine.java,v
retrieving revision 1.9.2.1
diff -u -r1.9.2.1 SearchEngine.java
--- search/org/eclipse/cdt/core/search/SearchEngine.java 9 Oct 2003 17:46:54 -0000 1.9.2.1
+++ search/org/eclipse/cdt/core/search/SearchEngine.java 24 Oct 2003 15:14:30 -0000
@@ -23,6 +23,7 @@
import org.eclipse.cdt.internal.core.Util;
import org.eclipse.cdt.internal.core.model.CModelManager;
import org.eclipse.cdt.internal.core.model.IWorkingCopy;
+import org.eclipse.cdt.internal.core.search.AcceptMatchOperation;
import org.eclipse.cdt.internal.core.search.CSearchScope;
import org.eclipse.cdt.internal.core.search.CWorkspaceScope;
import org.eclipse.cdt.internal.core.search.PathCollector;
@@ -32,6 +33,7 @@
import org.eclipse.cdt.internal.core.search.matching.MatchLocator;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IWorkspace;
+import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.OperationCanceledException;
@@ -164,7 +166,7 @@
/* search is starting */
collector.aboutToStart();
-
+ ArrayList matches = new ArrayList();
try{
//initialize progress monitor
IProgressMonitor progressMonitor = collector.getProgressMonitor();
@@ -188,7 +190,8 @@
indexManager
),
ICSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
- subMonitor );
+ subMonitor,
+ null );
subMonitor = (progressMonitor == null ) ? null : new SubProgressMonitor( progressMonitor, 95 );
@@ -199,9 +202,12 @@
throw new OperationCanceledException();
//TODO: BOG Filter Working Copies...
- matchLocator.locateMatches( pathCollector.getPaths(), workspace, this.workingCopies);
+ matchLocator.locateMatches( pathCollector.getPaths(), workspace, this.workingCopies, matches);
} finally {
- collector.done();
+ AcceptMatchOperation acceptMatchOp = new AcceptMatchOperation(collector, matches);
+ try {
+ CCorePlugin.getWorkspace().run(acceptMatchOp,null);
+ } catch (CoreException e) {}
}
}
}
Index: search/org/eclipse/cdt/internal/core/search/AcceptMatchOperation.java
===================================================================
RCS file: search/org/eclipse/cdt/internal/core/search/AcceptMatchOperation.java
diff -N search/org/eclipse/cdt/internal/core/search/AcceptMatchOperation.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ search/org/eclipse/cdt/internal/core/search/AcceptMatchOperation.java 24 Oct 2003 15:14:30 -0000
@@ -0,0 +1,48 @@
+/*
+ * Created on Oct 20, 2003
+ *
+ * To change the template for this generated file go to
+ * Window>Preferences>Java>Code Generation>Code and Comments
+ */
+package org.eclipse.cdt.internal.core.search;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+
+import org.eclipse.cdt.core.search.ICSearchResultCollector;
+import org.eclipse.cdt.core.search.IMatch;
+import org.eclipse.core.resources.IWorkspaceRunnable;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+
+/**
+ * @author bgheorgh
+ *
+ * To change the template for this generated type comment go to
+ * Window>Preferences>Java>Code Generation>Code and Comments
+ */
+public class AcceptMatchOperation implements IWorkspaceRunnable {
+
+ ICSearchResultCollector collector;
+ ArrayList matches;
+ /**
+ * @param collector
+ */
+ public AcceptMatchOperation(ICSearchResultCollector collector, ArrayList matches) {
+ this.collector = collector;
+ this.matches = matches;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.core.resources.IWorkspaceRunnable#run(org.eclipse.core.runtime.IProgressMonitor)
+ */
+ public void run(IProgressMonitor monitor) throws CoreException {
+ Iterator i = matches.iterator();
+ while (i.hasNext()){
+ IMatch match = (IMatch) i.next();
+ collector.acceptMatch(match);
+ }
+ collector.done();
+ }
+
+}
Index: search/org/eclipse/cdt/internal/core/search/matching/MatchLocator.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/search/org/eclipse/cdt/internal/core/search/matching/MatchLocator.java,v
retrieving revision 1.36
diff -u -r1.36 MatchLocator.java
--- search/org/eclipse/cdt/internal/core/search/matching/MatchLocator.java 1 Oct 2003 21:33:17 -0000 1.36
+++ search/org/eclipse/cdt/internal/core/search/matching/MatchLocator.java 24 Oct 2003 15:14:30 -0000
@@ -18,6 +18,7 @@
import java.io.FileReader;
import java.io.InputStreamReader;
import java.io.Reader;
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Iterator;
@@ -97,6 +98,8 @@
*/
public class MatchLocator implements ISourceElementRequestor, ICSearchConstants {
+
+ ArrayList matchStorage;
public static boolean VERBOSE = false;
/**
@@ -328,8 +331,9 @@
}
}
-
- public void locateMatches( String [] paths, IWorkspace workspace, IWorkingCopy[] workingCopies ){
+
+ public void locateMatches( String [] paths, IWorkspace workspace, IWorkingCopy[] workingCopies,ArrayList matches ){
+ matchStorage = matches;
workspaceRoot = (workspace != null) ? workspace.getRoot() : null;
HashMap wcPaths = new HashMap();
@@ -495,7 +499,9 @@
match = resultCollector.createMatch( currentPath, offset, end, object );
}
if( match != null ){
- resultCollector.acceptMatch( match );
+ //Save till later
+ //resultCollector.acceptMatch( match );
+ matchStorage.add(match);
}
} catch (CoreException e) {
Index: search/org/eclipse/cdt/internal/core/search/processing/JobManager.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/search/org/eclipse/cdt/internal/core/search/processing/JobManager.java,v
retrieving revision 1.5
diff -u -r1.5 JobManager.java
--- search/org/eclipse/cdt/internal/core/search/processing/JobManager.java 1 Oct 2003 13:33:33 -0000 1.5
+++ search/org/eclipse/cdt/internal/core/search/processing/JobManager.java 24 Oct 2003 15:14:30 -0000
@@ -188,8 +188,9 @@
public boolean performConcurrentJob(
IJob searchJob,
int waitingPolicy,
- IProgressMonitor progress) {
-
+ IProgressMonitor progress,
+ IJob jobToIgnore) {
+
if (VERBOSE)
JobManager.verbose("STARTING concurrent job - " + searchJob); //$NON-NLS-1$
if (!searchJob.isReadyToRun()) {
@@ -250,7 +251,8 @@
}
this.awaitingClients++;
}
- while ((awaitingWork = awaitingJobsCount()) > 0) {
+ while (((awaitingWork = awaitingJobsCount()) > 0)
+ && (!jobShouldBeIgnored(jobToIgnore))) {
if (subProgress != null && subProgress.isCanceled())
throw new OperationCanceledException();
currentJob = currentJob();
@@ -295,6 +297,20 @@
return status;
}
+ /**
+ * @param jobToIgnore
+ * @return
+ */
+ private boolean jobShouldBeIgnored(IJob jobToIgnore) {
+ if (jobToIgnore == null)
+ return false;
+
+ if (currentJob() == jobToIgnore)
+ return true;
+
+ return false;
+ }
+
public abstract String processName();
public synchronized void request(IJob job) {
Index: ChangeLog
===================================================================
RCS file: /home/tools/org.eclipse.cdt.ui/ChangeLog,v
retrieving revision 1.203.2.1
diff -u -r1.203.2.1 ChangeLog
--- ChangeLog 9 Oct 2003 17:46:59 -0000 1.203.2.1
+++ ChangeLog 24 Oct 2003 15:16:22 -0000
@@ -1,3 +1,7 @@
+2003-10-22 Bogdan Gheorghe
+ - Modified CCompletionProcessor.java to use new performConcurrentJob
+ - Modified CSearchOperation - no longer a WorkspaceModifyOperation (see Bug 45324)
+
2003-10-08 Bogdan Gheorghe
- Modified CCompletionProcessor.java to create a file scope
Index: src/org/eclipse/cdt/internal/ui/search/CSearchOperation.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/CSearchOperation.java,v
retrieving revision 1.8
diff -u -r1.8 CSearchOperation.java
--- src/org/eclipse/cdt/internal/ui/search/CSearchOperation.java 22 Sep 2003 18:38:30 -0000 1.8
+++ src/org/eclipse/cdt/internal/ui/search/CSearchOperation.java 24 Oct 2003 15:16:23 -0000
@@ -27,6 +27,7 @@
import org.eclipse.core.resources.IWorkspace;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.jface.operation.IRunnableWithProgress;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.ui.actions.WorkspaceModifyOperation;
@@ -36,7 +37,7 @@
* To change the template for this generated type comment go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
-public class CSearchOperation extends WorkspaceModifyOperation implements ICSearchConstants{
+public class CSearchOperation implements IRunnableWithProgress,ICSearchConstants{
public CSearchOperation(IWorkspace workspace, String pattern, boolean caseSensitive, List searchFor, LimitTo limitTo, ICSearchScope scope, String scopeDescription, CSearchResultCollector collector) {
this( workspace, limitTo, scope, scopeDescription, collector );
_stringPattern = pattern;
@@ -56,8 +57,7 @@
/* (non-Javadoc)
* @see org.eclipse.ui.actions.WorkspaceModifyOperation#execute(org.eclipse.core.runtime.IProgressMonitor)
*/
- protected void execute(IProgressMonitor monitor)
- throws CoreException, InvocationTargetException, InterruptedException
+ public void run(IProgressMonitor monitor)throws InvocationTargetException
{
_collector.setProgressMonitor( monitor );
@@ -79,6 +79,8 @@
}
engine.search( _workspace, pattern, _scope, _collector, false );
+
+
}
/**
@@ -146,6 +148,7 @@
private boolean _caseSensitive;
private LimitTo _limitTo;
private List _searchFor;
+
}
Index: src/org/eclipse/cdt/internal/ui/search/CSearchResultCollector.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/CSearchResultCollector.java,v
retrieving revision 1.11
diff -u -r1.11 CSearchResultCollector.java
--- src/org/eclipse/cdt/internal/ui/search/CSearchResultCollector.java 25 Sep 2003 19:51:42 -0000 1.11
+++ src/org/eclipse/cdt/internal/ui/search/CSearchResultCollector.java 24 Oct 2003 15:16:23 -0000
@@ -54,6 +54,7 @@
_matchCount = 0;
_view = SearchUI.getSearchResultView();
+
CSearchResultLabelProvider labelProvider = new CSearchResultLabelProvider();
labelProvider.setOrder( CSearchResultLabelProvider.SHOW_PATH );
Index: src/org/eclipse/cdt/internal/ui/text/CCompletionProcessor.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/CCompletionProcessor.java,v
retrieving revision 1.15.2.1
diff -u -r1.15.2.1 CCompletionProcessor.java
--- src/org/eclipse/cdt/internal/ui/text/CCompletionProcessor.java 9 Oct 2003 17:46:59 -0000 1.15.2.1
+++ src/org/eclipse/cdt/internal/ui/text/CCompletionProcessor.java 24 Oct 2003 15:16:23 -0000
@@ -513,7 +513,7 @@
//Get file's dependencies
try {
IndexManager indexMan = CCorePlugin.getDefault().getCoreModel().getIndexManager();
- indexMan.performConcurrentJob(new DependencyQueryJob(project, (IFile)actualFile, indexMan, dependencies), ICSearchConstants.WAIT_UNTIL_READY_TO_SEARCH, null);
+ indexMan.performConcurrentJob(new DependencyQueryJob(project, (IFile)actualFile, indexMan, dependencies), ICSearchConstants.WAIT_UNTIL_READY_TO_SEARCH, null, null);
} catch (Exception e) {
}
}
Index: ChangeLog
===================================================================
RCS file: /home/tools/org.eclipse.cdt.managedbuilder.core/ChangeLog,v
retrieving revision 1.13.2.1
diff -u -r1.13.2.1 ChangeLog
--- ChangeLog 7 Oct 2003 13:29:41 -0000 1.13.2.1
+++ ChangeLog 24 Oct 2003 15:15:27 -0000
@@ -1,3 +1,6 @@
+2003-10-23 Bogdan Gheorghe
+ Updated the indexManager.perfomConcurrentJob call in MakefileGenerator
+
2003-10-03 Sean Evoy
Fix for critical bug 44134.
Index: src/org/eclipse/cdt/managedbuilder/internal/core/MakefileGenerator.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/MakefileGenerator.java,v
retrieving revision 1.9.2.1
diff -u -r1.9.2.1 MakefileGenerator.java
--- src/org/eclipse/cdt/managedbuilder/internal/core/MakefileGenerator.java 7 Oct 2003 13:29:41 -0000 1.9.2.1
+++ src/org/eclipse/cdt/managedbuilder/internal/core/MakefileGenerator.java 24 Oct 2003 15:15:28 -0000
@@ -161,7 +161,7 @@
pathCollector,
indexManager),
ICSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
- null);
+ null, null);
// We will get back an array of resource names relative to the workspace
String[] deps = pathCollector.getPaths();
@@ -341,7 +341,7 @@
// ASk the dep generator to find all the deps for this resource
ArrayList dependencies = new ArrayList();
try {
- indexManager.performConcurrentJob(new DependencyQueryJob(project, (IFile)resource, indexManager, dependencies), ICSearchConstants.WAIT_UNTIL_READY_TO_SEARCH, null);
+ indexManager.performConcurrentJob(new DependencyQueryJob(project, (IFile)resource, indexManager, dependencies), ICSearchConstants.WAIT_UNTIL_READY_TO_SEARCH, null, null);
} catch (Exception e) {
continue;
}
Index: ChangeLog
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core.tests/ChangeLog,v
retrieving revision 1.131.2.1
diff -u -r1.131.2.1 ChangeLog
--- ChangeLog 21 Oct 2003 23:22:25 -0000 1.131.2.1
+++ ChangeLog 24 Oct 2003 15:15:05 -0000
@@ -1,3 +1,8 @@
+2003-10-22 Bogdan Gheorghe
+ modified DependencyTests.java - updated passed in parms to performConcurrentJob
+ modified OtherPatternTests.java - updated AcceptMatchOperation
+
+
2003-10-21 John Camelon
Moved testBug40007() from ASTFailedTests to QuickParseASTTests.
Added QuickParseASTTests::testBug40759().
Index: indexer/org/eclipse/cdt/core/indexer/tests/DependencyTests.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core.tests/indexer/org/eclipse/cdt/core/indexer/tests/DependencyTests.java,v
retrieving revision 1.1
diff -u -r1.1 DependencyTests.java
--- indexer/org/eclipse/cdt/core/indexer/tests/DependencyTests.java 26 Sep 2003 17:53:41 -0000 1.1
+++ indexer/org/eclipse/cdt/core/indexer/tests/DependencyTests.java 24 Oct 2003 15:15:06 -0000
@@ -15,7 +15,6 @@
import java.util.Iterator;
import java.util.Set;
-import junit.extensions.TestDecorator;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
@@ -143,7 +142,7 @@
String[] depTest2Model = {File.separator + "DepTestProject" + File.separator + "d.h", File.separator + "DepTestProject" + File.separator + "DepTest2.h"};
ArrayList includes = new ArrayList();
- indexManager.performConcurrentJob(new DependencyQueryJob(testProject,depTest,indexManager,includes),ICSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,null);
+ indexManager.performConcurrentJob(new DependencyQueryJob(testProject,depTest,indexManager,includes),ICSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,null,null);
String[] depTestModelLocal = convertToLocalPath(depTestModel);
String[] depTestIncludes = new String[includes.size()];
@@ -166,7 +165,7 @@
}
ArrayList includes2 = new ArrayList();
- indexManager.performConcurrentJob(new DependencyQueryJob(testProject,depTest2,indexManager,includes2),ICSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,null);
+ indexManager.performConcurrentJob(new DependencyQueryJob(testProject,depTest2,indexManager,includes2),ICSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,null,null);
String[] depTest2ModelLocal = convertToLocalPath(depTest2Model);
String[] depTest2Includes = new String[includes2.size()];
@@ -345,7 +344,7 @@
String[] preDepTestModel = {File.separator + "DepTestProject" + File.separator + "DepTest.h", File.separator + "DepTestProject" + File.separator + "Inc1.h", File.separator + "DepTestProject" + File.separator + "a.h", File.separator + "DepTestProject" + File.separator + "c.h", File.separator + "DepTestProject" + File.separator + "d.h"};
ArrayList includes = new ArrayList();
- indexManager.performConcurrentJob(new DependencyQueryJob(testProject,depTestC,indexManager,includes),ICSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,null);
+ indexManager.performConcurrentJob(new DependencyQueryJob(testProject,depTestC,indexManager,includes),ICSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,null, null);
String[] preDepTestModelLocal = convertToLocalPath(preDepTestModel);
String[] preDepTestIncludes = new String[includes.size()];
@@ -374,7 +373,7 @@
testProject.refreshLocal(IResource.DEPTH_INFINITE,null);
- indexManager.performConcurrentJob(new DependencyQueryJob(testProject,depTestC,indexManager,includes2),ICSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,null);
+ indexManager.performConcurrentJob(new DependencyQueryJob(testProject,depTestC,indexManager,includes2),ICSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,null, null);
String[] postDepTestModelLocal = convertToLocalPath(postDepTestModel);
@@ -412,7 +411,7 @@
String[] preDepTestModel = {File.separator + "DepTestProject" + File.separator + "DepTest3.h", File.separator + "DepTestProject" + File.separator + "a.h", File.separator + "DepTestProject" + File.separator + "c.h"};
ArrayList includes = new ArrayList();
- indexManager.performConcurrentJob(new DependencyQueryJob(testProject,depTest3C,indexManager,includes),ICSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,null);
+ indexManager.performConcurrentJob(new DependencyQueryJob(testProject,depTest3C,indexManager,includes),ICSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,null, null);
String[] preDepTestModelLocal = convertToLocalPath(preDepTestModel);
String[] preDepTestIncludes = new String[includes.size()];
@@ -441,7 +440,7 @@
testProject.refreshLocal(IResource.DEPTH_INFINITE,null);
- indexManager.performConcurrentJob(new DependencyQueryJob(testProject,depTest3C,indexManager,includes2),ICSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,null);
+ indexManager.performConcurrentJob(new DependencyQueryJob(testProject,depTest3C,indexManager,includes2),ICSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,null, null);
String[] postDepTestModelLocal = convertToLocalPath(postDepTestModel);
@@ -583,7 +582,7 @@
indexManager
),
ICSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
- null );
+ null, null );
}
private void editCode(IFile tempFile, String beforeString, String afterString) throws IOException, CoreException, InterruptedException{
Index: model/org/eclipse/cdt/core/model/tests/WorkingCopyTests.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core.tests/model/org/eclipse/cdt/core/model/tests/WorkingCopyTests.java,v
retrieving revision 1.3
diff -u -r1.3 WorkingCopyTests.java
--- model/org/eclipse/cdt/core/model/tests/WorkingCopyTests.java 10 Sep 2003 14:26:04 -0000 1.3
+++ model/org/eclipse/cdt/core/model/tests/WorkingCopyTests.java 24 Oct 2003 15:15:06 -0000
@@ -123,6 +123,8 @@
// DestroyWorkingCopy
wc.destroy();
- assertFalse(wc.exists());
+ assertFalse(wc.exists());
+
+ Thread.sleep(1000);
}
}
Index: search/org/eclipse/cdt/core/search/tests/BaseSearchTest.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core.tests/search/org/eclipse/cdt/core/search/tests/BaseSearchTest.java,v
retrieving revision 1.10
diff -u -r1.10 BaseSearchTest.java
--- search/org/eclipse/cdt/core/search/tests/BaseSearchTest.java 23 Sep 2003 15:17:03 -0000 1.10
+++ search/org/eclipse/cdt/core/search/tests/BaseSearchTest.java 24 Oct 2003 15:15:06 -0000
@@ -24,7 +24,6 @@
import org.eclipse.cdt.core.search.ICSearchResultCollector;
import org.eclipse.cdt.core.search.ICSearchScope;
import org.eclipse.cdt.core.search.SearchEngine;
-import org.eclipse.cdt.internal.core.search.indexing.IndexManager;
import org.eclipse.cdt.internal.ui.search.CSearchResultCollector;
import org.eclipse.cdt.testplugin.FileManager;
import org.eclipse.core.internal.resources.ResourceException;
Index: search/org/eclipse/cdt/core/search/tests/OtherPatternTests.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core.tests/search/org/eclipse/cdt/core/search/tests/OtherPatternTests.java,v
retrieving revision 1.18
diff -u -r1.18 OtherPatternTests.java
--- search/org/eclipse/cdt/core/search/tests/OtherPatternTests.java 1 Oct 2003 19:55:04 -0000 1.18
+++ search/org/eclipse/cdt/core/search/tests/OtherPatternTests.java 24 Oct 2003 15:15:06 -0000
@@ -13,19 +13,23 @@
*/
package org.eclipse.cdt.core.search.tests;
+import java.util.ArrayList;
import java.util.Iterator;
import java.util.Set;
import java.util.TreeSet;
+import org.eclipse.cdt.core.CCorePlugin;
import org.eclipse.cdt.core.search.BasicSearchMatch;
import org.eclipse.cdt.core.search.ICSearchPattern;
import org.eclipse.cdt.core.search.IMatch;
import org.eclipse.cdt.core.search.SearchEngine;
import org.eclipse.cdt.internal.core.CharOperation;
+import org.eclipse.cdt.internal.core.search.AcceptMatchOperation;
import org.eclipse.cdt.internal.core.search.matching.FieldDeclarationPattern;
import org.eclipse.cdt.internal.core.search.matching.MatchLocator;
import org.eclipse.cdt.internal.core.search.matching.NamespaceDeclarationPattern;
import org.eclipse.cdt.internal.core.search.matching.OrPattern;
+import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.Path;
/**
@@ -322,9 +326,20 @@
resultCollector.setProgressMonitor( monitor );
resultCollector.aboutToStart();
- MatchLocator matchLocator = new MatchLocator( pattern, resultCollector, scope, monitor );
- matchLocator.locateMatches( new String [] { path }, workspace, null );
- resultCollector.done();
+
+ ArrayList matchesList = new ArrayList();
+ MatchLocator matchLocator = new MatchLocator( pattern, resultCollector, scope, monitor );
+ matchLocator.locateMatches( new String [] { path }, workspace, null, matchesList);
+
+ AcceptMatchOperation acceptMatchOp = new AcceptMatchOperation(resultCollector, matchesList);
+ try {
+ CCorePlugin.getWorkspace().run(acceptMatchOp,null);
+ } catch (CoreException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ //
+ //resultCollector.done();
Set matches = resultCollector.getSearchResults();
assertEquals( matches.size(), 4 );