diff --git a/org.eclipse.buildship.core/src/main/java/org/eclipse/buildship/core/internal/operation/DefaultToolingApiOperationManager.java b/org.eclipse.buildship.core/src/main/java/org/eclipse/buildship/core/internal/operation/DefaultToolingApiOperationManager.java index 2f4800680..77cd37038 100644 --- a/org.eclipse.buildship.core/src/main/java/org/eclipse/buildship/core/internal/operation/DefaultToolingApiOperationManager.java +++ b/org.eclipse.buildship.core/src/main/java/org/eclipse/buildship/core/internal/operation/DefaultToolingApiOperationManager.java @@ -36,7 +36,11 @@ public void run(ToolingApiOperation runnable, IProgressMonitor monitor) throws C @Override public void run(ToolingApiOperation runnable, CancellationTokenSource tokenSource, IProgressMonitor monitor) throws CoreException { IProgressMonitor efficientMonitor = new RateLimitingProgressMonitor(monitor, 500, TimeUnit.MILLISECONDS); - ResourcesPlugin.getWorkspace().run(new WorkspaceRunnableAdapter(runnable, tokenSource), runnable.getRule(), 0, efficientMonitor); + try { + ResourcesPlugin.getWorkspace().run(new WorkspaceRunnableAdapter(runnable, tokenSource), runnable.getRule(), 0, efficientMonitor); + } finally { + efficientMonitor.done(); + } } /**