diff options
author | Alain Magloire | 2003-09-04 15:36:22 +0000 |
---|---|---|
committer | Alain Magloire | 2003-09-04 15:36:22 +0000 |
commit | 68beea8757745e0036d8d7c5f12084eb1c900aea (patch) | |
tree | c7fd9bfb61ecc4a505a782c72fba62ad9dafb55d | |
parent | 1c6c93560ac2cfe6f78ff5b297c43b796774d32c (diff) | |
download | org.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.java | 12 |
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); |