Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlain Magloire2003-09-04 15:36:22 +0000
committerAlain Magloire2003-09-04 15:36:22 +0000
commit68beea8757745e0036d8d7c5f12084eb1c900aea (patch)
treec7fd9bfb61ecc4a505a782c72fba62ad9dafb55d
parent1c6c93560ac2cfe6f78ff5b297c43b796774d32c (diff)
downloadorg.eclipse.cdt-68beea8757745e0036d8d7c5f12084eb1c900aea.tar.gz
org.eclipse.cdt-68beea8757745e0036d8d7c5f12084eb1c900aea.tar.xz
org.eclipse.cdt-68beea8757745e0036d8d7c5f12084eb1c900aea.zip
monitor.setCancelled() is accessing the UI thread
which is illegal and can throw an SWT illegal access exception. IProgressMonitor should probably be fix .. but meanwhile ...
-rw-r--r--core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/CBuilder.java12
1 files changed, 5 insertions, 7 deletions
diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/CBuilder.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/CBuilder.java
index 41d86caf6d5..516030dfbd8 100644
--- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/CBuilder.java
+++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/CBuilder.java
@@ -93,7 +93,6 @@ public class CBuilder extends ACBuilder {
private boolean invokeMake(boolean fullBuild, IProgressMonitor monitor) {
boolean isClean = false;
- boolean isCanceled = false;
IProject currProject = getProject();
SubProgressMonitor subMonitor = null;
@@ -157,13 +156,13 @@ public class CBuilder extends ACBuilder {
if (launcher.waitAndRead(stdout, stderr, subMonitor) != CommandLauncher.OK)
errMsg = launcher.getErrorMessage();
- isCanceled = monitor.isCanceled();
- monitor.setCanceled(false);
- subMonitor = new SubProgressMonitor(monitor, IProgressMonitor.UNKNOWN);
- subMonitor.subTask("Refresh From Local");
+ subMonitor.setTaskName("Refresh From Local");
try {
- currProject.refreshLocal(IResource.DEPTH_INFINITE, subMonitor);
+ // do not allow the cancel of the refresh, since the builder is external
+ // to Eclipse files may have been created/modified and we will be out-of-sync
+ // The caveat is for hugue projects, it may take sometimes at every build.
+ currProject.refreshLocal(IResource.DEPTH_INFINITE, null);
} catch (CoreException e) {
}
@@ -188,7 +187,6 @@ public class CBuilder extends ACBuilder {
epm.reportProblems();
subMonitor.done();
- monitor.setCanceled(isCanceled);
}
} catch (Exception e) {
CCorePlugin.log(e);

Back to the top