From 4a5849f077399bd77e49b626c15d67f752901282 Mon Sep 17 00:00:00 2001 From: peter Date: Thu, 3 Nov 2016 10:25:43 +0100 Subject: [PATCH] add some checkCanceled to async console filters (IDEA-163365) --- .../src/com/intellij/execution/filters/CompositeFilter.java | 2 ++ .../src/com/intellij/execution/impl/AsyncFilterRunner.java | 2 ++ 2 files changed, 4 insertions(+) diff --git a/platform/lang-api/src/com/intellij/execution/filters/CompositeFilter.java b/platform/lang-api/src/com/intellij/execution/filters/CompositeFilter.java index e659920d6a51..dd2cdac55f2b 100644 --- a/platform/lang-api/src/com/intellij/execution/filters/CompositeFilter.java +++ b/platform/lang-api/src/com/intellij/execution/filters/CompositeFilter.java @@ -18,6 +18,7 @@ package com.intellij.execution.filters; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.editor.Document; import com.intellij.openapi.progress.ProcessCanceledException; +import com.intellij.openapi.progress.ProgressManager; import com.intellij.openapi.project.DumbService; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.TextRange; @@ -54,6 +55,7 @@ public class CompositeFilter implements Filter, FilterMixin { List resultItems = null; for (int i = 0; i < count; i++) { + ProgressManager.checkCanceled(); Filter filter = filters.get(i); if (!dumb || DumbService.isDumbAware(filter)) { long t0 = System.currentTimeMillis(); diff --git a/platform/platform-impl/src/com/intellij/execution/impl/AsyncFilterRunner.java b/platform/platform-impl/src/com/intellij/execution/impl/AsyncFilterRunner.java index 183dc14630f2..53fa4cd40fc0 100644 --- a/platform/platform-impl/src/com/intellij/execution/impl/AsyncFilterRunner.java +++ b/platform/platform-impl/src/com/intellij/execution/impl/AsyncFilterRunner.java @@ -22,6 +22,7 @@ import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.editor.Document; import com.intellij.openapi.editor.Editor; import com.intellij.openapi.editor.RangeMarker; +import com.intellij.openapi.progress.ProgressManager; import com.intellij.openapi.progress.util.ProgressIndicatorUtils; import com.intellij.openapi.util.Computable; import com.intellij.openapi.util.NullableComputable; @@ -133,6 +134,7 @@ class AsyncFilterRunner { return () -> { List results = new ArrayList<>(); for (LineHighlighter task : tasks) { + ProgressManager.checkCanceled(); if (!marker.isValid()) return FilterResults.EMPTY; ContainerUtil.addIfNotNull(results, task.compute()); }