1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-08-06 07:45:50 +02:00

wrap marker changes inside workspace runnable

This commit is contained in:
David Inglis 2004-09-10 00:59:23 +00:00
parent d20c71ba18
commit 440cb7be37

View file

@ -826,29 +826,40 @@ public class PathEntryManager implements IPathEntryStoreListener, IElementChange
public void generateMarkers(final ICProject cProject, final IPathEntry[] entries) { public void generateMarkers(final ICProject cProject, final IPathEntry[] entries) {
Job markerTask = new Job("PathEntry Marker Job") { //$NON-NLS-1$ Job markerTask = new Job("PathEntry Marker Job") { //$NON-NLS-1$
/* /*
* (non-Javadoc) * (non-Javadoc)
* *
* @see org.eclipse.core.runtime.jobs.Job#run(org.eclipse.core.runtime.IProgressMonitor) * @see org.eclipse.core.runtime.jobs.Job#run(org.eclipse.core.runtime.IProgressMonitor)
*/ */
protected IStatus run(IProgressMonitor monitor) { protected IStatus run(IProgressMonitor monitor) {
IProject project = cProject.getProject(); try {
flushPathEntryProblemMarkers(project); CCorePlugin.getWorkspace().run(new IWorkspaceRunnable() {
ICModelStatus status = validatePathEntry(cProject, entries);
if (!status.isOK()) { /* (non-Javadoc)
createPathEntryProblemMarker(project, status); * @see org.eclipse.core.resources.IWorkspaceRunnable#run(org.eclipse.core.runtime.IProgressMonitor)
} */
for (int j = 0; j < entries.length; j++) { public void run(IProgressMonitor monitor) throws CoreException {
status = validatePathEntry(cProject, entries[j], true, false); IProject project = cProject.getProject();
if (!status.isOK()) { flushPathEntryProblemMarkers(project);
createPathEntryProblemMarker(project, status); ICModelStatus status = validatePathEntry(cProject, entries);
if (!status.isOK()) {
createPathEntryProblemMarker(project, status);
}
for (int j = 0; j < entries.length; j++) {
status = validatePathEntry(cProject, entries[j], true, false);
if (!status.isOK()) {
createPathEntryProblemMarker(project, status);
}
}
} }
} }, null);
} catch (CoreException e) {
return e.getStatus();
}
return Status.OK_STATUS; return Status.OK_STATUS;
} }
}; };
markerTask.setRule(CCorePlugin.getWorkspace().getRoot()); markerTask.setRule(CCorePlugin.getWorkspace().getRoot());
markerTask.schedule(); markerTask.schedule();
@ -863,28 +874,38 @@ public class PathEntryManager implements IPathEntryStoreListener, IElementChange
* @see org.eclipse.core.runtime.jobs.Job#run(org.eclipse.core.runtime.IProgressMonitor) * @see org.eclipse.core.runtime.jobs.Job#run(org.eclipse.core.runtime.IProgressMonitor)
*/ */
protected IStatus run(IProgressMonitor monitor) { protected IStatus run(IProgressMonitor monitor) {
for(int i = 0; i < cProjects.length; i++) { try {
ArrayList resolvedList = (ArrayList)resolvedMap.get(cProjects[i]); CCorePlugin.getWorkspace().run(new IWorkspaceRunnable() {
if (resolvedList != null) {
IPathEntry[] entries = (IPathEntry[])resolvedList.toArray(new IPathEntry[resolvedList.size()]); /* (non-Javadoc)
IProject project = cProjects[i].getProject(); * @see org.eclipse.core.resources.IWorkspaceRunnable#run(org.eclipse.core.runtime.IProgressMonitor)
flushPathEntryProblemMarkers(project); */
ICModelStatus status = validatePathEntry(cProjects[i], entries); public void run(IProgressMonitor monitor) throws CoreException {
if (!status.isOK()) { for(int i = 0; i < cProjects.length; i++) {
createPathEntryProblemMarker(project, status); ArrayList resolvedList = (ArrayList)resolvedMap.get(cProjects[i]);
} if (resolvedList != null) {
for (int j = 0; j < entries.length; j++) { IPathEntry[] entries = (IPathEntry[])resolvedList.toArray(new IPathEntry[resolvedList.size()]);
status = validatePathEntry(cProjects[i], entries[j], true, false); IProject project = cProjects[i].getProject();
if (!status.isOK()) { flushPathEntryProblemMarkers(project);
createPathEntryProblemMarker(project, status); ICModelStatus status = validatePathEntry(cProjects[i], entries);
if (!status.isOK()) {
createPathEntryProblemMarker(project, status);
}
for (int j = 0; j < entries.length; j++) {
status = validatePathEntry(cProjects[i], entries[j], true, false);
if (!status.isOK()) {
createPathEntryProblemMarker(project, status);
}
}
}
} }
} }
} }, null);
} catch (CoreException e) {
return e.getStatus();
} }
return Status.OK_STATUS; return Status.OK_STATUS;
} }
}; };
markerTask.setRule(CCorePlugin.getWorkspace().getRoot()); markerTask.setRule(CCorePlugin.getWorkspace().getRoot());
markerTask.schedule(); markerTask.schedule();